US20020069314A1 - Semiconductor storage device - Google Patents

Semiconductor storage device Download PDF

Info

Publication number
US20020069314A1
US20020069314A1 US08/665,364 US66536496A US2002069314A1 US 20020069314 A1 US20020069314 A1 US 20020069314A1 US 66536496 A US66536496 A US 66536496A US 2002069314 A1 US2002069314 A1 US 2002069314A1
Authority
US
United States
Prior art keywords
group
sector
logical
group number
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US08/665,364
Other versions
US6430650B1 (en
Inventor
Shigenori Miyauchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Assigned to MITSUBISHI DENKI KABUSHIKI KAISHA reassignment MITSUBISHI DENKI KABUSHIKI KAISHA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MIYAUCHI, SHIGENORI
Publication of US20020069314A1 publication Critical patent/US20020069314A1/en
Application granted granted Critical
Publication of US6430650B1 publication Critical patent/US6430650B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Definitions

  • the present invention relates to a semiconductor storage device including a nonvolatile memory such as a flash memory.
  • a hard disk drive is one of a large capacity storage device. It it has advantages of compactness and high cost performance, and it is used for a personal computer and a palm top (small and portable) personal computer. As a small personal computer becomes popular, a hard disk drive mounted in the small personal computer have been used often outdoors. When a personal computer is used in outdoors, it is required to operate for a long time with a battery and to have high endurance. However, because a hard disk is driven with a motor and affected by vibrations, it is not pertinent for a portable personal computer.
  • a semiconductor storage device compatible with a hard disk drive has attracted attention for a portable personal computer.
  • a semiconductor storage device comprises a nonvolatile memory such as a flash memory. Though it is inferior on cost performance to a hard disk drive, it is not affected by mechanical shocks, and it consumes a low electric power because no motor is needed.
  • a flash memory has following features in contrast to a hard disk drive which can overwrite data in the same sector.
  • Data in a sector to be accessed have to be erased before the data are written, and data cannot be overwritten.
  • read and write can be performed in the unit of a sector (512 bytes)
  • erase can only be performed in the unit of a relatively large size such as 64 kbytes. Further, an upper limit of the erase times for a sector are smaller than a hard disk drive.
  • a semiconductor storage device cannot be dealt with on erase in quite the same way as a hard disk drive. If a data is already written to a sector of a sector number designated by a host, a sector not used is searched, and the data is written to the sector. Thus, the data is written to a sector of a sector number not designated by the host.
  • An address conversion table is provided in the semiconductor storage device to convert a sector number designated by a host (hereinafter referred to as a logical sector number) to a sector number to be written actually (hereinafter referred to as a physical sector number).
  • a physical sector number is determined in correspondence to the logical sector number by referring to the address conversion table, and a data is read from the physical sector determined as described above.
  • An object of the present invention is to provide a semiconductor storage device which controls a large capacity of a flash memory by using a small capacity of an address conversion table.
  • a plurality of sectors is managed in the unit of a group consisting of n sectors.
  • a logical sector number is converted to a logical group number and an offset address by dividing the logical sector number with a natural number n and by setting a quotient of division as the logical group number and a remainder of division as the offset address.
  • a conversion table stored in a random access memory for converting a logical group number to a physical group number.
  • a management means for storing information for managing each group of n sectors of the same physical group number.
  • a data for a logical group number and an offset address is written to a sector in the group of the physical group number in correspondence to the logical group number
  • the data is written to a sector in correspondence to the offset address in the another group.
  • the physical group number in correspondence to the logical group number is updated in the conversion table as a physical group number of the another group
  • an address of the sector in the management means is also updated as the physical group number in correspondence to the logical group number before the conversion table is updated.
  • a physical group number in correspondence to the logical group number is obtained by referring to the conversion table. If the group of the physical group number is used, the group is accessed. However, if another physical group number is stored in the management means in correspondence to the logical group number before the conversion table is updated, a status of the another physical group number is checked. This processing is continued with reference to the management means until a physical group number of a group which stores the data of a sector of the logical sector number is found.
  • a number of checks for finding a physical group number of a group which stores the data of a sector of the logical sector number exceeds a predetermined number, latest data are written to a group not used, and the physical group number in correspondence to the logical address number is updated as a number of the group not used in the conversion table.
  • An advantage of the present invention is that a capacity of the address conversion table in a semiconductor storage memory can be decreased.
  • FIG. 1 is a block diagram of a semiconductor storage device of an embodiment of the invention.
  • FIG. 2 is a diagram of an erase block in a flash memory
  • FIG. 3 is a diagram of a situation in an erase block when new data are written to sectors 0 , 1 and 2 ;
  • FIG. 4 is a diagram of an address conversion table
  • FIG. 5 is another diagram of an erase block in a flash memory
  • FIG. 6 is another diagram of the address conversion table
  • FIGS. 7A and 7B are flowcharts of data write
  • FIGS. 8A, 8B, 8 C, 8 D, 8 E and 8 F are diagrams of group management data in each group in relation to data read;
  • FIGS. 9A, 9B, 9 C, 9 D, 9 E and 9 F are diagrams of group management data in each group for illustrating abbreviated linkage.
  • FIG. 10 is a flowchart of data read.
  • FIG. 1 shows a semiconductor storage device of an embodiment of the invention.
  • a semiconductor storage device 11 is connected to a host 10 such as a personal computer.
  • An interface 12 is provided for sending and receiving data to and from the host 10 .
  • a flash memory controller 14 controls data write to and data read from a flash memory 15 .
  • a buffer random access memory 17 stores temporarily data read from or written to the flash memory 15 .
  • An address conversion table 16 is stored in a random access memory.
  • a central processing unit (CPU) 13 controls the operation of the entire semiconductor storage device 11 .
  • the semiconductor storage device 11 manages four sectors as one group.
  • a physical group number (PGN) is assigned to each group, and offset addresses (OA) of 0 , 1 , 2 and 3 are assigned to the four sectors in a group.
  • a logical sector number LSN received from the host 10 is divided with 4, and the quotient of the division is set as a logical group number (LGN) and the remainder is set as an offset address.
  • a physical group number (PGN) in correspondence to a logical group number (LGN) is determined as will be explained later, and the address conversion table 16 stores data of a physical group number (PGN) in correspondence to a logical group number (LGN).
  • a storage capacity of a random access memory needed for the address conversion table can be decreased if compared with an address conversion table for management in the unit of a sector. For example, about 1.3 megabits of storage capacity are needed for managing all the sectors (81,920 sectors) in a semiconductor storage device of 40 megabytes.
  • one group consists of four sectors, only 280 kilobits or one random access memory chip of 512 kilobits is needed for managing all the groups (20,480 groups).
  • a capacity of a random access memory for the address conversion table is reduced.
  • a space needed for the random access memory is decreased, a larger capacity of a flash memory can be mounted in a semiconductor storage device.
  • n sectors are managed as one group. If a number n of sectors in a group is increased, a storage capacity for an address conversion table can be decreased further. However, because data write is performed to a group, not used, the flash memory may not be used efficiently if a group consists of too many sectors. Therefore, a number of sectors in a group has to be determined by considering balance between the two points.
  • the flash memory 15 consists of a plurality of erase blocks. In a default setting, data of “1” is written to all the addresses, and a data is written by writing a data of “0” in required addresses.
  • FIG. 2 shows an erase block 20 in a flash memory 15 .
  • a block size is 64 kilobytes.
  • An erase block 20 consists of a block management data block 21 , a group management data block 22 and a data storage area 23 .
  • Information on the erase block 20 is written to the block management block 21 .
  • the information on the erase block 20 includes a count of erasing times and an inhibition flag for inhibiting a use of the block.
  • Information for managing each group in the erase block 20 is provided for each group, and it is written to the group management data block 22 . For example, if 60 groups exist in the erase block 20 , 60 sets of group management information are stored. The content of management information for each group is shown in Table 1.
  • Group erase enable flag F 1 is set as “1” when the group is not used or is in use. That is, it is set as “0” when no data exists in the group.
  • Group use status flag F 2 on use status of the sectors in the group is set as “0” for a sector in use. If a group consists of four groups, the flag F 2 is expressed as a 4-bit data. For example, if sectors 0 , 1 and 2 are used, the flag F 2 is expressed as “0001”.
  • the logical group number represents a data of a logical group number for the group, and it is referred to when the address conversion table 16 is prepared when an electric power is turned on. If all the sectors are not used, a default value is given to the logical group number.
  • the error correction code data is an error correction code data used for improving reliability of the logical group number.
  • the four latest physical addresses ADD 0 -ADD 3 represent whether data in physical addresses of four sectors 0 , 1 , 2 and 3 in the group are latest or not, and they are referred to when a data is read. For the latest data, a default value of “1111” is set, while if the data is written to an old group, the physical group number of the old group is written to the latest physical address.
  • the latest data flag F 3 is set as “1” if at least one of the four sectors in the group stores the latest data.
  • the sector storing the latest data means a sector for which the group use status flag F 2 is set as “0”.
  • the CPU 13 forms the address conversion table according to the data of the logical group number (LGN) of groups having the flags F 1 and F 3 both of “1”.
  • FIG. 3 shows a situation in an erase block 20 when new data are written to sectors 0 , 1 and 2 of logical sector number LGN of ⁇ in the erase block. If the physical group number PGN in correspondence to the logical group number ⁇ is not stored in the address conversion table 16 , it is decided that the data write is a new write. In this case, data are written to a group not used (having physical group number PGN of X).
  • FIG. 5 shows a different situation in the erase block 20 when data write has already been performed to sectors 0 , 1 and 2 of a group of logical group number LGN of ⁇ and an additional data write is further performed to a sector 0 in another group of logical group number of ⁇ .
  • a physical group number of X in correspondence to a logical group number ⁇ is determined by referring to the address conversion table. Because a data cannot be overwritten in a flash memory, a group not used is searched, and the additional data is written to sector 0 in he another group searched of a physical group number PGN of Y. The physical group number PGN of X and various flags the physical group number PGN of Y are updated in the group management data area 22 . Further, as shown in FIG. 6, a physical group number PGN in correspondence to the logical group number LGN of ⁇ is written as “Y” in the address conversion table 16 .
  • a value of the lowest bit in the group use status flag F 2 in correspondence to sector 0 is set as “0”, and physical group number X of the old group is written to ADD 1 and ADD 2 for sectors 1 and 2 .
  • the host 10 requests to read sector 1 of the logical group number LGN of ⁇ , the data is read from sector 1 in the old group of physical sector number of X by referring to the physical group number of X stored in ADD 1 for sector 1 , and in the corresponding sector is read.
  • FIGS. 7A and 7B show flowcharts of data write of the CPU 13 .
  • Offset addresses of 0 , 1 , 2 and 3 are assigned to four sectors in a group successively from a sector of the smallest physical address. For example, when the logical sector numbers designated by the host 10 are 4, 5 and 6, the logical group number is set as “1” and the offset addresses OA are set and “0”, “1”, and “2”.
  • step S 102 the address conversion table 16 is referred to (step S 102 ), and it is confirmed if a physical group number PGN in correspondence to the logical group number LGN is registered in the address conversion table 16 (step S 103 ). If the physical group number is decided not to be registered in the table (NO at step S 103 ), the data write is decided to be a new data write, and the following processing is performed: First, the group use status flag F 2 in the group management data area 22 in the erase block 20 is checked as to search a group wherein all the groups are not used (step S 104 ) or a group having flag F 2 of “1111”. Then, the data are written to sectors of the offset addresses OA in the searched group of a physical group number of X (step S 105 ).
  • step S 117 If data is decided to have already been written to the sector (YES at step S 117 ), additional data write is performed according to the following processing: First, the group use status flag F 2 in the group management data area 22 in the erase block 20 is checked to search a group having flag F 2 of “1111” wherein all the groups are not used (step S 120 ). Then, the data are written to sectors of the offset addresses OA in the searched group not used of physical group number of Y (step S 121 ).
  • the physical group number of X of the old group is written to the latest physical addresses ADDn of the sectors to which data have been written (step S 124 ), the latest data flag F 3 for the old group is set as “0” (step S 125 ), and the address conversion table 16 is updated by writing the physical group number PGN of the latest group to which the data are written (step S 126 ). If data is decided not to have already been written to the relevant sector (NO at step S 117 ), the data is written to the sector (step S 118 ), and the corresponding bit data in the group use status flag F 2 is updated or written as “0” for the sector in the new group to which the data are written (step S 119 ).
  • abbreviated linkage is performed when a times of the group linkage exceeds a predetermined number, as explained above. Further, it may be performed when a time needed for tracing back the linkage exceeds a predetermined time because the linkage abbreviation is performed to shorten a time for data read within a certain level.
  • FIGS. 8 A- 8 F show an example of group management data for illustrating group linkage when no abbreviated linkage is performed.
  • FIGS. 8A, 8B, 8 C, 8 D and 8 E show group management data for physical group number PGN of A, B, C, D and E.
  • data write is requested to sectors 0 , 1 and 2 in a group of a logical group number LGN of ⁇ , and the data are written to sectors 0 , 1 and 2 of a corresponding physical group of address data of the group A.
  • additional data write is performed successively to sector 1 , to sectors 1 and 2 , to sectors 2 and 3 and to sector 3 as shown with the flag F 2 .
  • FIGS. 9 A- 9 F show an example of group management data for illustrating abbreviated linkage.
  • FIGS. 9A, 9B, 9 C, 9 D and 9 E show group management data for physical group number PGN of A, B, C, D and E. Data write is performed similarly to the example shown in FIGS. 8 A- 8 E, and the group management data are similar to those shown in FIGS. 8A, 8B, 8 C, 8 D and 8 E.
  • the count of groups to be traced back is four, and abbreviated linkage is performed. That is, as shown in FIG.
  • FIG. 10 shows a flowchart of data read of the CPU 13 .
  • the address conversion table 16 is referred to (step S 202 ), and a physical group number PGN in correspondence to the logical group number is confirmed by referring to the address conversion table 16 (step S 203 ).
  • a count of groups to be traced back for abbreviated linkage is initialized as “1”, (step S 204 ).
  • step S 206 data at the address is read. Otherwise an address in correspondence to the physical group number having the same value as the address ADD is confirmed (step S 207 ), the count C is incremented by one (step S 208 ), and the flow returns to step S 205 .
  • step S 207 After data is read at step S 206 as mentioned above, it is checked if the count exceeds four or not (step 207 ). If the count is decided to exceed four (YES at step 207 ), abbreviated linkage is performed. First, a group not used is searched (step S 210 ), and the latest data of all the sectors are copied to the new group (step S 211 ). Then, each flag on the new group is updated (step S 212 ), and group erase enable flag F 1 is set as “0” on the old groups and the latest data flag F 3 of the new group is set as “0” (step S 213 ).
  • a physical group number PGN in the address conversion table 16 in correspondence to a physical group number PGN is updated to the number of the group to which the latest data are copied (step S 214 ).
  • group linkage is shortened. Because this abbreviated linkage takes a certain time, this processing is not performed if the count is less than four (NO at step S 209 ).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

A semiconductor storage device comprises a flash memory and manages the sectors in the unit of groups each consisting of n sectors. A logical sector number is converted to a logical group number and an offset address, and a conversion table is provided to convert a physical group number to a logical group number. A logical sector number is divided with n to get a quotient and a remainder which are set as a logical number and as an offset address. An access controller determines a physical group number corresponding to the logical group number with reference to the address conversion table, and it accesses a sector in correspondence to the offset address in the physical group number. Further, a group management information for each group is stored in a memory, and when a sector of a logical sector number is accessed, a physical group number of a group storing the data of the sector is traced by referring the conversion table and the group management information.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to a semiconductor storage device including a nonvolatile memory such as a flash memory. [0002]
  • 2. Description of the Prior Art [0003]
  • A hard disk drive is one of a large capacity storage device. It it has advantages of compactness and high cost performance, and it is used for a personal computer and a palm top (small and portable) personal computer. As a small personal computer becomes popular, a hard disk drive mounted in the small personal computer have been used often outdoors. When a personal computer is used in outdoors, it is required to operate for a long time with a battery and to have high endurance. However, because a hard disk is driven with a motor and affected by vibrations, it is not pertinent for a portable personal computer. [0004]
  • Then, a semiconductor storage device compatible with a hard disk drive has attracted attention for a portable personal computer. A semiconductor storage device comprises a nonvolatile memory such as a flash memory. Though it is inferior on cost performance to a hard disk drive, it is not affected by mechanical shocks, and it consumes a low electric power because no motor is needed. [0005]
  • A flash memory has following features in contrast to a hard disk drive which can overwrite data in the same sector. Data in a sector to be accessed have to be erased before the data are written, and data cannot be overwritten. Though read and write can be performed in the unit of a sector (512 bytes), erase can only be performed in the unit of a relatively large size such as 64 kbytes. Further, an upper limit of the erase times for a sector are smaller than a hard disk drive. [0006]
  • Then, a semiconductor storage device cannot be dealt with on erase in quite the same way as a hard disk drive. If a data is already written to a sector of a sector number designated by a host, a sector not used is searched, and the data is written to the sector. Thus, the data is written to a sector of a sector number not designated by the host. An address conversion table is provided in the semiconductor storage device to convert a sector number designated by a host (hereinafter referred to as a logical sector number) to a sector number to be written actually (hereinafter referred to as a physical sector number). When a data read is requested by a host, a physical sector number is determined in correspondence to the logical sector number by referring to the address conversion table, and a data is read from the physical sector determined as described above. [0007]
  • For a semiconductor storage device of 40 megabytes, two random access memory chips of 1 megabits or one random access memory chip of 4 megabits is needed. As a storage capacity of a flash memory increases, a storage size of an address conversion table also increases. Then, a cost of the semiconductor storage device increases, and a freedom of designing the device is limited by an increase in size of the random access memory. [0008]
  • SUMMARY OF THE INVENTION
  • An object of the present invention is to provide a semiconductor storage device which controls a large capacity of a flash memory by using a small capacity of an address conversion table. [0009]
  • In a semiconductor storage device using a flash memory, a plurality of sectors is managed in the unit of a group consisting of n sectors. A logical sector number is converted to a logical group number and an offset address by dividing the logical sector number with a natural number n and by setting a quotient of division as the logical group number and a remainder of division as the offset address. A conversion table stored in a random access memory for converting a logical group number to a physical group number. When the flash memory is accessed, a physical group number corresponding to the logical group number is determined with reference to the conversion table and a sector in the flash memory is calculated in correspondence to a sum of the offset address and a product of the physical group number and the natural number n. [0010]
  • Further, a management means is provided for storing information for managing each group of n sectors of the same physical group number. When a data for a logical group number and an offset address is written to a sector in the group of the physical group number in correspondence to the logical group number, if any data has already been written to one of the sectors in a group, another group not used is searched, the data is written to a sector in correspondence to the offset address in the another group. Then, the physical group number in correspondence to the logical group number is updated in the conversion table as a physical group number of the another group, and an address of the sector in the management means is also updated as the physical group number in correspondence to the logical group number before the conversion table is updated. On the other hand, when a sector of a logical sector number is read, a physical group number in correspondence to the logical group number is obtained by referring to the conversion table. If the group of the physical group number is used, the group is accessed. However, if another physical group number is stored in the management means in correspondence to the logical group number before the conversion table is updated, a status of the another physical group number is checked. This processing is continued with reference to the management means until a physical group number of a group which stores the data of a sector of the logical sector number is found. Preferably, if a number of checks for finding a physical group number of a group which stores the data of a sector of the logical sector number exceeds a predetermined number, latest data are written to a group not used, and the physical group number in correspondence to the logical address number is updated as a number of the group not used in the conversion table. [0011]
  • An advantage of the present invention is that a capacity of the address conversion table in a semiconductor storage memory can be decreased.[0012]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other objects and features of the present invention will become clear from the following description taken in conjunction with the preferred embodiments thereof with reference to the accompanying drawings, and in which: [0013]
  • FIG. 1 is a block diagram of a semiconductor storage device of an embodiment of the invention; [0014]
  • FIG. 2 is a diagram of an erase block in a flash memory; [0015]
  • FIG. 3 is a diagram of a situation in an erase block when new data are written to [0016] sectors 0, 1 and 2;
  • FIG. 4 is a diagram of an address conversion table; [0017]
  • FIG. 5 is another diagram of an erase block in a flash memory; [0018]
  • FIG. 6 is another diagram of the address conversion table; [0019]
  • FIGS. 7A and 7B are flowcharts of data write; [0020]
  • FIGS. 8A, 8B, [0021] 8C, 8D, 8E and 8F are diagrams of group management data in each group in relation to data read;
  • FIGS. 9A, 9B, [0022] 9C, 9D, 9E and 9F are diagrams of group management data in each group for illustrating abbreviated linkage; and
  • FIG. 10 is a flowchart of data read.[0023]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Referring now to the drawings, wherein like reference characters designate like or corresponding parts throughout the views, FIG. 1 shows a semiconductor storage device of an embodiment of the invention. A [0024] semiconductor storage device 11 is connected to a host 10 such as a personal computer. An interface 12 is provided for sending and receiving data to and from the host 10. A flash memory controller 14 controls data write to and data read from a flash memory 15. A buffer random access memory 17 stores temporarily data read from or written to the flash memory 15. An address conversion table 16 is stored in a random access memory. A central processing unit (CPU) 13 controls the operation of the entire semiconductor storage device 11.
  • The [0025] semiconductor storage device 11 manages four sectors as one group. A physical group number (PGN) is assigned to each group, and offset addresses (OA) of 0, 1, 2 and 3 are assigned to the four sectors in a group. A logical sector number LSN received from the host 10 is divided with 4, and the quotient of the division is set as a logical group number (LGN) and the remainder is set as an offset address. A physical group number (PGN) in correspondence to a logical group number (LGN) is determined as will be explained later, and the address conversion table 16 stores data of a physical group number (PGN) in correspondence to a logical group number (LGN).
  • By managing four sectors as one group, a storage capacity of a random access memory needed for the address conversion table can be decreased if compared with an address conversion table for management in the unit of a sector. For example, about 1.3 megabits of storage capacity are needed for managing all the sectors (81,920 sectors) in a semiconductor storage device of 40 megabytes. On the other hand, when one group consists of four sectors, only 280 kilobits or one random access memory chip of 512 kilobits is needed for managing all the groups (20,480 groups). Thus, a capacity of a random access memory for the address conversion table is reduced. Further, because a space needed for the random access memory is decreased, a larger capacity of a flash memory can be mounted in a semiconductor storage device. [0026]
  • In general, n sectors are managed as one group. If a number n of sectors in a group is increased, a storage capacity for an address conversion table can be decreased further. However, because data write is performed to a group, not used, the flash memory may not be used efficiently if a group consists of too many sectors. Therefore, a number of sectors in a group has to be determined by considering balance between the two points. [0027]
  • The [0028] flash memory 15 consists of a plurality of erase blocks. In a default setting, data of “1” is written to all the addresses, and a data is written by writing a data of “0” in required addresses.
  • FIG. 2 shows an erase [0029] block 20 in a flash memory 15. A block size is 64 kilobytes. An erase block 20 consists of a block management data block 21, a group management data block 22 and a data storage area 23. Information on the erase block 20 is written to the block management block 21. The information on the erase block 20 includes a count of erasing times and an inhibition flag for inhibiting a use of the block. Information for managing each group in the erase block 20 is provided for each group, and it is written to the group management data block 22. For example, if 60 groups exist in the erase block 20, 60 sets of group management information are stored. The content of management information for each group is shown in Table 1.
    TABLE 1
    Group management information
    Items
    1 Group erase enable flag F1
    2 Group use status flag F2
    3 Logical group number LGN
    4 Error correction code data
    5 Latest physical address ADD0 in sector 0
    Latest physical address ADD1 in sector 1
    Latest physical address ADD2 in sector 2
    Latest physical address ADD3 in sector 3
    6 Latest data flag F3
  • Group erase enable flag F[0030] 1 is set as “1” when the group is not used or is in use. That is, it is set as “0” when no data exists in the group.
  • Group use status flag F[0031] 2 on use status of the sectors in the group is set as “0” for a sector in use. If a group consists of four groups, the flag F2 is expressed as a 4-bit data. For example, if sectors 0, 1 and 2 are used, the flag F2 is expressed as “0001”.
  • The logical group number (LGN) represents a data of a logical group number for the group, and it is referred to when the address conversion table [0032] 16 is prepared when an electric power is turned on. If all the sectors are not used, a default value is given to the logical group number.
  • The error correction code data is an error correction code data used for improving reliability of the logical group number. [0033]
  • The four latest physical addresses ADD[0034] 0-ADD3 represent whether data in physical addresses of four sectors 0, 1, 2 and 3 in the group are latest or not, and they are referred to when a data is read. For the latest data, a default value of “1111” is set, while if the data is written to an old group, the physical group number of the old group is written to the latest physical address.
  • The latest data flag F[0035] 3 is set as “1” if at least one of the four sectors in the group stores the latest data. The sector storing the latest data means a sector for which the group use status flag F2 is set as “0”. When an electric power is turned on, the CPU 13 forms the address conversion table according to the data of the logical group number (LGN) of groups having the flags F1 and F3 both of “1”.
  • Next, data write on the semiconductor storage device is explained. There are two types of data write: new write and additional write. FIG. 3 shows a situation in an erase [0036] block 20 when new data are written to sectors 0, 1 and 2 of logical sector number LGN of α in the erase block. If the physical group number PGN in correspondence to the logical group number α is not stored in the address conversion table 16, it is decided that the data write is a new write. In this case, data are written to a group not used (having physical group number PGN of X). After the data are written to sectors 0, 1 and 2 of physical sector number PGN of X in the erase block 20 (as denoted with hatched lines), various flags on the group of logical group number LGN of X are updated in the group management data area 22. Further, as shown in FIG. 4, a physical group number PGN in correspondence to the logical group number LGN of α is written as “X” to the address conversion table 16.
  • FIG. 5 shows a different situation in the erase [0037] block 20 when data write has already been performed to sectors 0, 1 and 2 of a group of logical group number LGN of α and an additional data write is further performed to a sector 0 in another group of logical group number of α. A physical group number of X in correspondence to a logical group number α is determined by referring to the address conversion table. Because a data cannot be overwritten in a flash memory, a group not used is searched, and the additional data is written to sector 0 in he another group searched of a physical group number PGN of Y. The physical group number PGN of X and various flags the physical group number PGN of Y are updated in the group management data area 22. Further, as shown in FIG. 6, a physical group number PGN in correspondence to the logical group number LGN of α is written as “Y” in the address conversion table 16.
  • Table 2 shows flags in an old group (PGN=X) and in a new group (PGN=Y) when additional write is performed to [0038] sector 0 when data have already been written to sector 0, 1 and 2 in the group of physical group number PGN=X.
  • As shown in Table 2, the latest data flag F[0039] 3 is set as “0” on the old group of PGN=X. On the other hand, for the new group of PGN=Y, a value of the lowest bit in the group use status flag F2 in correspondence to sector 0 is set as “0”, and physical group number X of the old group is written to ADD1 and ADD2 for sectors 1 and 2. When the host 10 requests to read sector 1 of the logical group number LGN of α, the data is read from sector 1 in the old group of physical sector number of X by referring to the physical group number of X stored in ADD1 for sector 1, and in the corresponding sector is read. When the host 10 requests to read sector 0 of logical group number LGN of α, the data in the corresponding sector is read.
    TABLE 2
    Group management information
    New group Old group
    (PGN = Y) (PGN = X)
    Group erase enable flag F1   1   1
    Group use status flag F2 0111 0001
    Logical group number LGN α α
    Error correction code data ECC data ECC data
    Latest physical address 1111 1111
    ADD0 in sector 0
    Latest physical address PGN = X 1111
    ADD1 in sector 1
    Latest physical address PGN = X 1111
    ADD2 in sector 2
    Latest physical address 1111 1111
    Add3 in sector 3
    Latest data flag F3   1   0
  • FIGS. 7A and 7B show flowcharts of data write of the [0040] CPU 13. First, a logical sector number LSN of α is received from the host 10 (step S100), and the logical sector number is divided with n (=4 in this embodiment), and the quotient of the division is set as a logical group number LGN and the remainder is set as an offset address OA (step S101). Offset addresses of 0, 1, 2 and 3 are assigned to four sectors in a group successively from a sector of the smallest physical address. For example, when the logical sector numbers designated by the host 10 are 4, 5 and 6, the logical group number is set as “1” and the offset addresses OA are set and “0”, “1”, and “2”. Then, the address conversion table 16 is referred to (step S102), and it is confirmed if a physical group number PGN in correspondence to the logical group number LGN is registered in the address conversion table 16 (step S103). If the physical group number is decided not to be registered in the table (NO at step S103), the data write is decided to be a new data write, and the following processing is performed: First, the group use status flag F2 in the group management data area 22 in the erase block 20 is checked as to search a group wherein all the groups are not used (step S104) or a group having flag F2 of “1111”. Then, the data are written to sectors of the offset addresses OA in the searched group of a physical group number of X (step S105). Then, management data shown in Table 1 for the group to which the data are written are updated. That is, a corresponding bit data in the group use status flag F2 is written as “0” (step S106), the logical group number (LGN=X) obtained at step S101 is written as “0” (step S107), and the other flag data are updated (step S108). Finally, the address conversion table 16 is updated by writing the physical group number PGN of the group to which the data are written (step S109).
  • On the other hand, if the physical group number is decided to be registered in the address conversion table (YES at step S[0041] 103), it is decided further if data has already been written to the relevant sector (step S117). If data is decided to have already been written to the sector (YES at step S117), additional data write is performed according to the following processing: First, the group use status flag F2 in the group management data area 22 in the erase block 20 is checked to search a group having flag F2 of “1111” wherein all the groups are not used (step S120). Then, the data are written to sectors of the offset addresses OA in the searched group not used of physical group number of Y (step S121). Then, management data shown in Table 1 for the old group of physical group number of X written in the address conversion table 16 and for the new group of physical group number Y to which the data are written are updated. That is, a corresponding bit data in the group use status flag F2 is written as “0” for the sector in the new group to which the data are written (step S122), the logical group number (LGN=X) obtained in step S101 is written ad “0” and the ECC data are written (step S123). The physical group number of X of the old group is written to the latest physical addresses ADDn of the sectors to which data have been written (step S124), the latest data flag F3 for the old group is set as “0” (step S125), and the address conversion table 16 is updated by writing the physical group number PGN of the latest group to which the data are written (step S126). If data is decided not to have already been written to the relevant sector (NO at step S117), the data is written to the sector (step S118), and the corresponding bit data in the group use status flag F2 is updated or written as “0” for the sector in the new group to which the data are written (step S119).
  • Next, data read processing by the [0042] CPU 13 is explained. When a data is read, an address data ADDn is checked on a sector of an offset address OA of a group of a physical group number PGN. If the address data is “1111”, a data stored in the sector is read. On the other hand, if an address data different from “1111” is written to the sector, an additional data write has been performed to the sector, and the data on the sector is written to the sector of the same offset address in an old group. Then, the address of the sector in the physical group number is checked until an address data of “1111” is found, and the data at the sector of the physical group number of the address data of “1111”. If additional data write is performed repeatedly, it takes a time to trace back to the group of the address data of “1111”. Then, a number of groups to be traced back is counted, and if the number exceeds three, the data of all the sectors are copied in a new group not used, and the erase enable flag F1 in each of the old groups is set as “0”, and the latest data flag F3 is set as “0”. This processing is called as abbreviated linkage. The abbreviated linkage is performed when a times of the group linkage exceeds a predetermined number, as explained above. Further, it may be performed when a time needed for tracing back the linkage exceeds a predetermined time because the linkage abbreviation is performed to shorten a time for data read within a certain level.
  • FIGS. [0043] 8A-8F show an example of group management data for illustrating group linkage when no abbreviated linkage is performed. FIGS. 8A, 8B, 8C, 8D and 8E show group management data for physical group number PGN of A, B, C, D and E. First, data write is requested to sectors 0, 1 and 2 in a group of a logical group number LGN of β, and the data are written to sectors 0, 1 and 2 of a corresponding physical group of address data of the group A. Next, additional data write is performed successively to sector 1, to sectors 1 and 2, to sectors 2 and 3 and to sector 3 as shown with the flag F2. The address data of “1111” means that the latest data is written to the group. As to sector 0, the data is written only on the group of PGN of A. Then, when the data of sector 0 is read, the latest group (F3=1) of PGN=E have to be traced back four times successively to the group of PGN=A, as shown with arrows, though the data of sectors 2 or 3 can be read readily from the group of PGN=E.
  • FIGS. [0044] 9A-9F show an example of group management data for illustrating abbreviated linkage. FIGS. 9A, 9B, 9C, 9D and 9E show group management data for physical group number PGN of A, B, C, D and E. Data write is performed similarly to the example shown in FIGS. 8A-8E, and the group management data are similar to those shown in FIGS. 8A, 8B, 8C, 8D and 8E. As explained above, when data are written to group of PGN=E, the count of groups to be traced back is four, and abbreviated linkage is performed. That is, as shown in FIG. 9F, a group not used for all the sectors of a group of a physical group number PGN of F is searched, and the latest data are copied in the group of PGN=F and the latest data flag F3 is set for the group of PGN=F. Further, the erase enable flag F1 is set on the groups of PGN of A to E.
  • FIG. 10 shows a flowchart of data read of the [0045] CPU 13. First, a logical sector number LSN is received from the host 10 (step S200), and the logical sector number is divided with n (=4 in this embodiment), and the quotient of the division is set as logical group number LGN and the remainder is set as offset address OA (step S201). Then, the address conversion table 16 is referred to (step S202), and a physical group number PGN in correspondence to the logical group number is confirmed by referring to the address conversion table 16 (step S203). Then, a count of groups to be traced back for abbreviated linkage is initialized as “1”, (step S204).
  • Next, if the address ADD obtained at step S[0046] 202 is decided to be “1111” (YES at step S205), data at the address is read (step S206). Otherwise an address in correspondence to the physical group number having the same value as the address ADD is confirmed (step S207), the count C is incremented by one (step S208), and the flow returns to step S205.
  • After data is read at step S[0047] 206 as mentioned above, it is checked if the count exceeds four or not (step 207). If the count is decided to exceed four (YES at step 207), abbreviated linkage is performed. First, a group not used is searched (step S210), and the latest data of all the sectors are copied to the new group (step S211). Then, each flag on the new group is updated (step S212), and group erase enable flag F1 is set as “0” on the old groups and the latest data flag F3 of the new group is set as “0” (step S213). Next, a physical group number PGN in the address conversion table 16 in correspondence to a physical group number PGN is updated to the number of the group to which the latest data are copied (step S214). Thus, group linkage is shortened. Because this abbreviated linkage takes a certain time, this processing is not performed if the count is less than four (NO at step S209).
  • Although the present invention has been fully described in connection with the preferred embodiments thereof with reference to the accompanying drawings, it is to be noted that various changes and modifications are apparent to those skilled in the art. Such changes and modifications are to be understood as included within the scope of the present invention as defined by the appended claims unless they depart therefrom. [0048]

Claims (6)

What is claimed is:
1. A semiconductor storage device comprising:
a flash memory consisting of a plurality of sectors;
a means for converting a logical sector number to a logical group number and an offset address by dividing the logical sector number with a natural number n larger than one and by setting a quotient of division as the logical group number and a remainder of division as the offset address;
a random access memory storing a conversion table for converting a logical group number to a physical group number; and
a random access controller for determining a physical group number corresponding to the logical group number with reference to the conversion table in said random access memory and for accessing a sector in said flash memory in correspondence to a sum of the offset address and a product of the physical group number and the natural number n.
2. The device according to claim 1, wherein the plurality of sectors in said flash memory is divided into a plurality of erase blocks.
3. The device according to claim 1, further comprising a management means for storing information for managing each group of n sectors of the same physical group number, wherein when a data for a logical group number and an offset address is written to a sector in the group of the physical group number in correspondence to the logical group number, if any data has already been written to one of the sectors in the group, said access controller searches another group not used, writes the data in a sector in correspondence to the offset address in the another group, updates the physical group number in correspondence to the logical group number in the conversion table as a physical group number of the another group, and rewrites an address of the sector in said management means as the physical group number in correspondence to the logical group number before the conversion table is updated.
4. The device according to claim 3, wherein data in said flash memory are erased in a unit of erase block consisting of a plurality of sectors, and said management means stores information for managing sectors in the unit of erase block.
5. The device according to claim 3, wherein when a sector of a logical sector number is accessed for read, said access controller obtains a physical group number in correspondence to the logical group number by referring to the conversion table, and if another physical group number is stored in said management means in correspondence to the logical group number before the conversion table is updated, said access controller checks a status of the another physical group number, and said access controller checks statuses of physical group numbers with reference to said management means until a physical group number of a group which stores the data of a sector of the logical sector number is found.
6. The device according to claim 5, wherein if a number of checks by said management means for finding a physical group number of a group which stores the data of a sector of the logical sector number exceeds a predetermined number, said controller searches a group not used, writes latest data to the group not used, and rewrites the physical group number in correspondence to the logical address number as a number of the group not used in the conversion table.
US08/665,364 1996-01-08 1996-06-17 Semiconductor storage device for group management of data sectors Expired - Fee Related US6430650B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPP08-000707 1996-01-08
JP8-000707 1996-01-08
JP70796A JPH09185551A (en) 1996-01-08 1996-01-08 Semiconductor memory device

Publications (2)

Publication Number Publication Date
US20020069314A1 true US20020069314A1 (en) 2002-06-06
US6430650B1 US6430650B1 (en) 2002-08-06

Family

ID=11481252

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/665,364 Expired - Fee Related US6430650B1 (en) 1996-01-08 1996-06-17 Semiconductor storage device for group management of data sectors

Country Status (3)

Country Link
US (1) US6430650B1 (en)
JP (1) JPH09185551A (en)
DE (1) DE19623853A1 (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101313A1 (en) * 2001-11-27 2003-05-29 Fujitsu Limited Memory system
US6639843B2 (en) 2001-08-31 2003-10-28 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device with block-unit erase type nonvolatile memory
EP1416389A2 (en) * 2002-10-28 2004-05-06 SanDisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US20050007865A1 (en) * 1997-08-08 2005-01-13 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US20050144362A1 (en) * 2003-12-31 2005-06-30 Jason Lin Flash storage system with write/erase abort detection mechanism
EP1550952A2 (en) * 2003-12-30 2005-07-06 Samsung Electronics Co., Ltd. Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US20070100893A1 (en) * 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
US20070113030A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
US20070113029A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
US20070245069A1 (en) * 2004-09-10 2007-10-18 Syuichi Kikuchi Storage Device, Memory Management Method and Program
US20080005449A1 (en) * 2006-07-03 2008-01-03 Phison Electronics Corp. Generalized flash memory and method thereof
US20080147965A1 (en) * 2002-12-13 2008-06-19 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US20080222409A1 (en) * 2007-03-07 2008-09-11 Via Technologies, Inc. Memory access system and memory access method thereof
US20080320245A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Method for writing data of an atomic transaction to a memory device
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US20090049229A1 (en) * 2005-12-09 2009-02-19 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory device, method of writing data,and method of reading out data
US20090172252A1 (en) * 2007-12-28 2009-07-02 Andrew Tomlin Memory device and method for performing a write-abort-safe firmware update
US20140281144A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Memory system
CN104866345A (en) * 2015-05-21 2015-08-26 福建升腾资讯有限公司 Storage method of executable code under ARMv7m architecture
US20160266823A1 (en) * 2015-03-10 2016-09-15 SK Hynix Inc. Data storage device and operating method thereof
CN116661704A (en) * 2023-07-07 2023-08-29 深圳宏芯宇电子股份有限公司 Storage device data reading and writing method, storage device and storage controller

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
JP2002175211A (en) * 2000-12-07 2002-06-21 Sharp Corp System and method for controlling data
KR100389867B1 (en) * 2001-06-04 2003-07-04 삼성전자주식회사 Flash memory management method
EP1523711A1 (en) * 2002-06-19 2005-04-20 Tokyo Electron Device Limited Memory device, memory managing method and program
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
GB2400927A (en) * 2003-04-22 2004-10-27 Hewlett Packard Development Co Method of managing memory by checking that none of the sectors in a block is needed before erasing the block.
ITMI20031126A1 (en) * 2003-06-05 2004-12-06 St Microelectronics Srl MASS MEMORY DEVICE BASED ON A MEMORY
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
KR100706242B1 (en) 2005-02-07 2007-04-11 삼성전자주식회사 Memory system and run level address mapping table forming method thereof
JP2009026062A (en) * 2007-07-19 2009-02-05 Tdk Corp Memory controller, memory system, and memory control method
JP2010020586A (en) * 2008-07-11 2010-01-28 Nec Electronics Corp Data processing device
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9846552B2 (en) 2014-11-13 2017-12-19 Toshiba Memory Corporation Memory device and storage system having the same
US10635596B2 (en) 2015-10-02 2020-04-28 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes
JP6254986B2 (en) * 2015-10-02 2017-12-27 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus, access controller, and information processing method
US11188501B1 (en) * 2017-08-15 2021-11-30 Amazon Technologies, Inc. Transactional and batch-updated data store search
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113512A (en) * 1988-06-21 1992-05-12 Matsushita Electric Industrial Co., Ltd. System for managing a storage medium reducing physical space needed
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5590300A (en) * 1991-03-05 1996-12-31 Zitel Corporation Cache memory utilizing address translation table
JP3178909B2 (en) * 1992-01-10 2001-06-25 株式会社東芝 Semiconductor memory device
JP3175371B2 (en) * 1992-03-06 2001-06-11 三菱電機株式会社 Data storage format conversion method, conversion method thereof, access control device, and data access method
JP3105092B2 (en) * 1992-10-06 2000-10-30 株式会社東芝 Semiconductor memory device
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
JP2856621B2 (en) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション Batch erase nonvolatile memory and semiconductor disk device using the same
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH08137634A (en) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp Flash disk card
JPH08212019A (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp Semiconductor disk device
JP3706167B2 (en) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ Semiconductor disk device
JP3426385B2 (en) * 1995-03-09 2003-07-14 富士通株式会社 Disk controller

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230156B2 (en) 1997-08-08 2012-07-24 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US20080059695A1 (en) * 1997-08-08 2008-03-06 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US20100023680A1 (en) * 1997-08-08 2010-01-28 Kabushiki Kaisha Toshiba Method for Controlling Non-Volatile Semiconductor Memory System
US20050007865A1 (en) * 1997-08-08 2005-01-13 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US20100138606A1 (en) * 1997-08-08 2010-06-03 Kabushiki Kaisha Toshiba Method for Controlling Non-Volatile Semiconductor Memory System
US8756401B2 (en) 1997-08-08 2014-06-17 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US9009387B2 (en) * 1997-08-08 2015-04-14 Kabushiki Kaisha Toshiba Method for controlling non-volatile semiconductor memory system
US6639843B2 (en) 2001-08-31 2003-10-28 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device with block-unit erase type nonvolatile memory
US7046574B2 (en) * 2001-11-27 2006-05-16 Fujitsu Limited Memory system
US20030101313A1 (en) * 2001-11-27 2003-05-29 Fujitsu Limited Memory system
EP1416389A2 (en) * 2002-10-28 2004-05-06 SanDisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US20080147965A1 (en) * 2002-12-13 2008-06-19 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US7996501B2 (en) * 2002-12-13 2011-08-09 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
EP1550952A2 (en) * 2003-12-30 2005-07-06 Samsung Electronics Co., Ltd. Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US20080065818A1 (en) * 2003-12-31 2008-03-13 Jason Lin Flash Storage System with Write-Erase Abort Detection Mechanism
US20050144362A1 (en) * 2003-12-31 2005-06-30 Jason Lin Flash storage system with write/erase abort detection mechanism
US7299314B2 (en) * 2003-12-31 2007-11-20 Sandisk Corporation Flash storage system with write/erase abort detection mechanism
US7669004B2 (en) 2003-12-31 2010-02-23 Sandisk Corporation Flash storage system with write-erase abort detection mechanism
US20070245069A1 (en) * 2004-09-10 2007-10-18 Syuichi Kikuchi Storage Device, Memory Management Method and Program
US20070100893A1 (en) * 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
US20070113030A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
US20070113029A1 (en) * 2005-11-14 2007-05-17 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
US7624239B2 (en) 2005-11-14 2009-11-24 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
US7783845B2 (en) 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
US8307149B2 (en) 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
US20090049229A1 (en) * 2005-12-09 2009-02-19 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory device, method of writing data,and method of reading out data
US20080005449A1 (en) * 2006-07-03 2008-01-03 Phison Electronics Corp. Generalized flash memory and method thereof
US20080222409A1 (en) * 2007-03-07 2008-09-11 Via Technologies, Inc. Memory access system and memory access method thereof
US7991990B2 (en) * 2007-03-07 2011-08-02 Via Technologies, Inc. Memory access system and memory access method thereof
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US8266391B2 (en) 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US20080320245A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Method for writing data of an atomic transaction to a memory device
US20090172252A1 (en) * 2007-12-28 2009-07-02 Andrew Tomlin Memory device and method for performing a write-abort-safe firmware update
US8775758B2 (en) 2007-12-28 2014-07-08 Sandisk Technologies Inc. Memory device and method for performing a write-abort-safe firmware update
US20140281144A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Memory system
US9158678B2 (en) * 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
US20160266823A1 (en) * 2015-03-10 2016-09-15 SK Hynix Inc. Data storage device and operating method thereof
US9778864B2 (en) * 2015-03-10 2017-10-03 SK Hynix Inc. Data storage device using non-sequential segment access and operating method thereof
CN104866345A (en) * 2015-05-21 2015-08-26 福建升腾资讯有限公司 Storage method of executable code under ARMv7m architecture
CN116661704A (en) * 2023-07-07 2023-08-29 深圳宏芯宇电子股份有限公司 Storage device data reading and writing method, storage device and storage controller

Also Published As

Publication number Publication date
US6430650B1 (en) 2002-08-06
JPH09185551A (en) 1997-07-15
DE19623853A1 (en) 1997-07-17

Similar Documents

Publication Publication Date Title
US6430650B1 (en) Semiconductor storage device for group management of data sectors
JP4611024B2 (en) Method and apparatus for grouping pages in a block
US6327639B1 (en) Method and apparatus for storing location identification information within non-volatile memory devices
US6262918B1 (en) Space management for managing high capacity nonvolatile memory
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
US5742934A (en) Flash solid state disk card with selective use of an address conversion table depending on logical and physical sector numbers
US9852061B2 (en) Memory device and operating method of memory device
US5598370A (en) Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same
KR100923814B1 (en) Method and apparatus for splitting a logical block
US7715243B2 (en) Storage device employing a flash memory
US6134151A (en) Space management for managing high capacity nonvolatile memory
US6122195A (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US5983312A (en) Simultaneously writing to and erasing two commonly numbered sectors
US7937521B2 (en) Read disturbance management in a non-volatile memory system
US5963983A (en) Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device
JP4511576B2 (en) Memory system
US6172906B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8321624B2 (en) Memory device and management method of memory device
US20050015557A1 (en) Nonvolatile memory unit with specific cache
US8127072B2 (en) Data storage device and method for accessing flash memory
US20010012222A1 (en) Memory controller for flash memory system and method for accessing flash memory device
US7945762B2 (en) Method and apparatus for memory management in a non-volatile memory system using a block table
JP3303011B2 (en) Semiconductor memory device
JP2000122909A (en) External storage device using nonvolatile memory
KR100261994B1 (en) Flash memory

Legal Events

Date Code Title Description
AS Assignment

Owner name: MITSUBISHI DENKI KABUSHIKI KAISHA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MIYAUCHI, SHIGENORI;REEL/FRAME:008233/0347

Effective date: 19960425

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20060806