Source: http://www.google.com/patents/US6510495?dq=6462713
Timestamp: 2016-06-28 20:33:16
Document Index: 660942285

Matched Legal Cases: ['art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90', 'art 90']

Patent US6510495 - Data write method into nonvolatile memory, information processing device and ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA method for writing data into a nonvolatile memory that allows data deletion in block units includes the steps of storing the identification information of a block to which data stored in a cache memory belongs, and, when writing data into the nonvolatile memory, determining whether the data stored...http://www.google.com/patents/US6510495?utm_source=gb-gplus-sharePatent US6510495 - Data write method into nonvolatile memory, information processing device and recording mediumAdvanced Patent SearchPublication numberUS6510495 B1Publication typeGrantApplication numberUS 09/715,090Publication dateJan 21, 2003Filing dateNov 20, 2000Priority dateNov 19, 1999Fee statusPaidPublication number09715090, 715090, US 6510495 B1, US 6510495B1, US-B1-6510495, US6510495 B1, US6510495B1InventorsTakahiro NobukiyoOriginal AssigneeNec CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (7), Referenced by (17), Classifications (13), Legal Events (5) External Links: USPTO, USPTO Assignment, EspacenetData write method into nonvolatile memory, information processing device and recording medium
US 6510495 B1Abstract
A method for writing data into a nonvolatile memory that allows data deletion in block units includes the steps of storing the identification information of a block to which data stored in a cache memory belongs, and, when writing data into the nonvolatile memory, determining whether the data stored in the cache memory is to be transferred to a corresponding area in the nonvolatile memory, based on a comparison of the identification information for a block to which the data being written belongs and the stored identification information, the transfer being triggered by the result of the comparison.
This invention relates to a data write method into a nonvolatile memory capable of deleting data in units of block, an information processing device to achieve the data write method, and a recording medium storing a data write control program to execute the data write method.
In general, a nonvolatile memory such as a flash memory allows the data write/read to be conducted in word units, but requires that the data deleted in units of multiple words, i.e., in block units. Therefore, in rewriting data at an address, a block of data corresponding to the address subjected to the rewriting is once copied into a cache memory that can be accessed faster than the nonvolatile memory. Then, after renewing the stored content of the cache memory by data to be rewritten, the block data corresponding to the address subjected to the rewriting is deleted from the nonvolatile memory. Then, the data stored in the cache memory is written in block units into the corresponding area in the nonvolatile memory. Thus, the rewriting requires complicated processing.
Accordingly, it is an object of the invention to provide a method for writing a data into a nonvolatile memory that the number of access to the nonvolatile memory reduces, thereby the processing overhead can be reduced.
The referred embodiments of the invention will be explained below, referring to the drawings.
The information processing means 10 determines which file access command to select from various file access commands, such as “file open instruction” that is an instruction to start access to a file, “file close instruction” that is an instruction to finish access to a file, “file delete instruction” that is an instruction to delete a file, “file name change instruction” that is an instruction to change the name of a file, “file write instruction” that is an instruction to write data into a file, and “file read instruction” that is an instruction to read data from a file. Information processing means 10 also adds control information for executing the determined file access command, and issues a data write/read instruction for executing the file access to the accessing means 20.
The accessing means 20 has a function for judging which of the read and write instructions is issued from the information processing means 10 and executing a processing according to the judged result, and has a function for renewing the file management table 30 based on type of the file access. The processing according to the judged result includes a processing of referring to the type of the file access and the stored content of the file management table 30 and setting to validate or invalidate “file close write condition” and “file close extra-write condition”, and a processing of issuing a write instruction and a read instruction to the write control means 40 and the read control means 60, respectively.
The write control means 40 has a function for judging whether “file close write condition” and “file close extra-write condition”, respectively, are valid or invalid, and executing a processing according to the judged result. The processing according to the judged result includes a processing of writing, in units of block, data into the area in the nonvolatile memory 70 corresponding to block number calculated based on an address designated in the write instruction, a processing of issuing a delete instruction to the delete control means 50 to conduct the delete control, a processing of issuing a read instruction to the read control means 60 to conduct the read control, a processing of renewing data in the cache memory 80, and a processing of renewing block number stored in the block number storing part 90 by block number to which data stored in the cache memory 80 belongs.
The first example of operation of the device is explained below. Meanwhile, in the embodiments of this invention, it is assumed that the file management is conducted in FAT (file allocation tables) format. As shown in FIG. 3, in the FAT format, memory area is divided into file management area and file data area. The file management area is an area to store management information such as file name, file size, file renewal date, file data contents etc. The file data area is an area to store file data contents.
Referring to FIGS. 4 to 8, the operation of the respective components in FIG. 1 is explained in detail below. Meanwhile, in the first example of operation, it is assumed that the capacity of the cache memory 80 is one block, i.e. 8 KB and the nonvolatile memory 70 has a memory composition shown in FIG. 2. As shown in FIG. 2, the nonvolatile memory 70 is of blocks, each block being 8 KB and each block number being sequentially set from zero. Also, “0x” in the address range of each block means a numeral in hexadecimal. In the nonvolatile memory 70, writing/reading can be conducted in units of one byte, and deleting is conducted in units of one block, i.e. 8 KB. In the writing/reading, the address can be designated as, e.g., 8 bytes from address “0x0040F0”. In the deleting, one arbitrary address in the address range corresponding to a block subjected to the deleting can be designated. For example, in order to delete a block of block number 3, needed is only to designate one arbitrary address, e.g. “0x006000”, in the address range “0x006000 to 0x007FFF” of block number 3.
When the accessing means 20 receives the write/read instruction issued from the information processing means 10, it judges whether the instruction received is data read instruction or not (step S11). If it is a data read instruction (step S11: Yes), the address and data subjected to the reading are designated and the data read instruction is issued to the read control means 60 (step S12). If it is not a data read instruction (step S11: No), then it is judged whether the type of file access is a file close instruction (step S13). If it is a file close instruction (step S13: Yes), it is judged, with reference to the stored content of the file management table 30, whether, except the file to be closed by this file close instruction, an open file being written exists (step S14). If it does not exist (step S14: No), “file close write condition” is validated (step S15), a data write instruction is issued to the write control means 40 (step S16), and after the write processing by the write control means 40 is finished the “file close write condition” is invalidated (step S17). On the other hand, if it exists (step S14: Yes), the processing by the accessing means 20 is finished. Thus, through steps S13 and S14, the file close instruction to an open file existing in the nonvolatile memory 70 is issued, and, when it is judged that no open file except the file subjected to closing by the file close instruction exists, the data stored in the cache memory 80 is stored into the corresponding area in the nonvolatile memory 70. Therefore, the processing overhead, which occurs in prior art, until when a given time elapses does not occur. In a status that the stored content of the file management table 30 is as shown in FIG. 17, when the file close instruction is issued to file name A, data from the cache memory 80 is stored into the corresponding area in the nonvolatile memory 70.
If the type of file access is not a file close instruction (step S13: No), then it is judged whether the type of file access is a file delete instruction or a file name change instruction (steps S18, S19). If it is a file delete instruction or a file name change instruction (steps S18, S19: Yes), “file close extra-write condition” is validated (step S20), a write instruction is issued to the write control means 40 designating the data and address subjected to the writing (step S21), after the writing by the write control means 40, “file close extra-write condition” is invalidated (step S22). If it is not a file delete instruction or a file name change instruction (steps S18, S19: No), a write instruction is issued to the write control means 40 designating the data and address subjected to the writing (step S23). In general, the file delete instruction and file name change instruction can be executed regardless of whether the execution of file open instruction exists, and therefore with these instructions only the file management area is rewritten. Namely, the information processing means 10 does not always conduct the file close instruction. Therefore, if the write condition is not provided, data whose writing into the nonvolatile memory 70 is not executed may be left in the cache memory 80. So, the validating and invalidating of file close extra-write condition are conducted. Although not shown in FIG. 5, the accessing means 20 properly renews the stored content of the file management table 30 based on the instruction issued from the information processing means 10.
This processing operation is conducted corresponding to steps S16, S21 and S23 in FIG. 5. Receiving a data write instruction, the write control means 40 judges whether “file close write condition” is valid or not (step S31). If valid (step S31: Yes), a delete instruction is issued to the delete control means 50, thereby data in area of nonvolatile memory 70 corresponding to the block number stored in the block number storing part 90 is deleted (step S32). Then, into this area deleted, data stored in the cache memory 80 is written in units of block (step S33).
On the other hand, if “file close write condition” is invalid (step S31: No), the data subjected to the write instruction is divided to each block number, and the write processing starts in the order of block number (step S34). Then, it is judged whether the cache memory 80 is empty or not (step S35). If the cache memory 80 is empty due to the data read from the nonvolatile memory 70 being not stored (step S35: Yes), a read instruction is issued to the read control means 60, thereby data in the nonvolatile memory 70 corresponding to the block number calculated from the address subjected the write instruction is read in units of block and copied into the cache memory 80, thereby the stored content of the block number storing part 90 is renewed by the block number of block thus read (step S36). Meanwhile, the emptiness of cache memory 80 means a case that no write instruction is issued up to then like the initial state. Then, of data stored in the cache memory 80, the data corresponding to the address subjected to the write instruction is rewritten by the data subjected to the write instruction (step S37). Then it goes to the next processing, step S43.
On the other hand, if data subjected to the write instruction is not left (step S43: No), it is judged whether “file close extra-write condition” is valid or not (step S44). If valid (step S44: Yes), the delete control means 50 is controlled to delete data in the nonvolatile memory 70 corresponding to the block number stored in the block number storing part 90 (step S45). Then, data stored in the cache memory 80 is written in units of block into the area in the nonvolatile memory 70 corresponding to the block number stored in the block number storing part 90 (step S46). Also, if not valid (step S44: No), the processing by the write control means 40 is finished.
FIGS. 9A and 9B are explanatory diagrams showing the example of operation of the information processing means 10. In FIG. 9, show is a case that the information processing means 10 determines the type of file access and instructs the accessing means 20 about the write/read processing. As shown in FIG. 9A, in making a new file, it is necessary to execute “file open instruction”, “file write instruction” and “file close instruction” sequentially. In this case, in order to lead the respective file access instructions into execution, a data write/read instruction is issued to the accessing means 20 adding control information for executing such operations as described at the right in FIG. 9A (steps S1, S2 in FIG. 3). Similarly, in order to lead the file delete instruction into execution, a data write/read instruction is issued to the accessing means 20 adding control information for executing such an operation as described at the right in FIG. 9B (steps S1, S2 in FIG. 3).
FIG. 10 is an explanatory diagram showing the example of operation of the write control means 40. Now, it is assumed that, in a status that neither “file close write condition” nor “file close extra-write condition” is valid and the cache memory 80 are storing data to be written into block 52, the write control means 40 receives a write instruction to a file data area (0x004000 to 0x004FFF). First, from the address (0x004000 to 0x004FFF) of data subjected to the write instruction, block number 2 is calculated. The stored content of the block number storing part 90 is “52”. Thus, since the block number 2 calculated from the address subjected to the write instruction does not coincide with the stored content “52” in the block number storing part 90, the data being stored in the cache memory 80 is written into the corresponding area to block number 52 in the nonvolatile memory 70 (steps S31, S34, S35, S38, S39 and S40 in FIG. 6). Then, a read instruction is issued to the read control means 60, thereby the corresponding data to block number 2 in the nonvolatile memory 70 is read and copied into the cache memory 80, thereby, of data stored in the cache memory 80, the corresponding 4 KB data to the address (0x004000 to 0x004FFF) is renewed (steps S41, S42 in FIG. 6). Then, the processing operation of the write control means 40 is finished (steps S43, S44 in FIG. 6). Part of vertical lines in FIG. 10 indicates the part being subjected to data renewal.
Further, it is assumed that, in a status that neither “file close write condition” nor “file close extra-write condition” is, as is, valid, the write control means 40 receives a write instruction to a file data area (0x005000 to 0x005FFF). First, from the address (0x005000 to 0x005FFF) of data subjected to the write instruction, block number 4 is calculated. The stored content of the block number storing part 90 is “4”. Thus, since the block number 4 calculated from the address subjected to the write instruction does coincide with the stored content “4” in the block number storing part 90, of data stored in the cache memory 80, the corresponding 4 KB data to the address (0x005000 to 0x005FFF) is renewed (steps S31, S34, S35, S38 and S37 in FIG. 6). Then, the processing operation of the write control means 40 is finished (steps S43, 44 in FIG. 6). For this processing, part of horizontal lines in FIG. 10 indicates the part being subjected to data renewal.
The second example of operation of the device is explained below. In this operation example, it is assumed that the nonvolatile memory 70 having a memory construction shown in FIG. 11 is used. In the nonvolatile memory 70 in FIG. 11, one block is of 16 pages and the sector number is set in sequence. In this nonvolatile memory 70, an access area is designated by using sector number and address. For example, write/read is conducted designating sector 26 and 256 bytes from address “0x100”. Delete is conducted designating some sector of a block subjected to the delete. For example, to delete the block of block number 2, arbitrary one sector, e.g. sector 33, of sectors 32 to 47 belonging to block number 2 is designated. Although the write/read can be conducted in units of one byte, the write/read crossing over multiple pages can not be conducted in the lump. So, in order to read data of three pages, it is necessary to repeat the read in units of page three times. The delete can be conducted in units of one block, i.e. 8 KB. In this operation example, as shown in FIG. 12, used is a FAT that two blocks for exclusive use to file management area and one block for file data area, totally three blocks are provided. In general, when a file access led to a data write such as file write instruction, file delete instruction and file name change instruction is conducted, the stored content of file management area always has to be rewritten. Therefore, the number of access per one block to the file management area is used much more than that to the file data area. Because of this, the cache memory is thus assigned considering the number of access, thereby the efficiency of data write processing can be further enhanced.
First, referring to FIG. 13, the processing operation of the accessing means 20 is explained. In comparison with FIG. 5, the difference is only that file move instruction (step T1) and file copy instruction (step T2) are added as a case to invalidate “file close extra-write condition”, the other steps are same. The file move instruction and file copy instruction can be executed, like the file delete instruction, regardless of whether the execution of file open instruction exists, and therefore only the file management area is rewritten. Namely, the information processing means 10 does not always conduct the file close instruction. Therefore, for a data write instruction in the file access by the file move instruction and file copy instruction, “file close extra-write condition” is validated. The explanation of the detailed operation concerning FIG. 13 is omitted here.
This processing is conducted corresponding to steps S16, S21 and S23 in FIG. 13. Receiving a data write instruction, the write control means 40 judges whether “file close write condition” is valid or not (step S101). If valid (step S101: Yes), a delete instruction is issued to the delete control means 50, thereby two blocks, block 0 and block 1, in the file management area of nonvolatile memory 70 are deleted (step S102). Then, data of block 1 and block 2 in the file management area of the cache memory 80 are written, in units of block, into the corresponding area of the nonvolatile memory 70 (step S103). Then, a delete instruction is again issued to the delete control means 50, thereby the corresponding data in the nonvolatile memory 70 to block number stored in the block number storing part 90 is deleted (step S104). Then, data being stored in the cache memory 80 is written, in units of block, into the corresponding area in the nonvolatile memory 70 to the block number stored in the block number storing part 90 (step S105).
On the other hand, if “file close write condition” is invalid (step S101: No), the data subjected to the write instruction is divided to each block number, and the write processing starts in the order of block number (step S106). Then, it is judged whether the address subjected to the write instruction belongs to file management area or file data area (step S107). Meanwhile, it is assumed that the accessing means 20 does not issue simultaneously the data of both file management area and file data area to the write control means 40. In a case that the accessing means 20 issues a write instruction to both the area, it is necessary to issue separately the write instruction to each area. If the address subjected to the write instruction belongs to the file management area, then it is judged whether the corresponding area in the cache memory 80 to the block in the file management area subjected to the write instruction is empty or not (step S108). If the area for file management area in the cache memory 80 is empty (step S108: Yes), a read instruction is issued to the read control means 60, thereby data in the nonvolatile memory 70 corresponding to the block number calculated from the address subjected to the write instruction is read in units of block and copied into the area for file management area in the cache memory 80 (step S109), thereby of data being stored in the area for file management area in the cache memory 80, the corresponding data to the address subjected to the write instruction is rewritten (step S110). Then, it goes to the next processing, step S111.
If data subjected to the write instruction is not left (step S111: No), it is judged whether “file close extra-write condition” is valid or not (step S112). If valid (step S112: Yes), issuing a delete instruction to the delete control means 50, the data in the nonvolatile memory 70 corresponding to the file management area, block 0 and block 1 is deleted (step S113). Then, data for the file management area, block 1 and block 2, in the cache memory 80 is written in units of block into the corresponding area in the nonvolatile memory 70 (step S114). Also, if not valid (step S112: No), the processing by the write control means 40 is finished.
In this operation example, the case that “file close extra-write condition” is valid means that the data write instruction by file access not to rewrite the file data area is issued. So, the data for file data area in the cache memory 80 is not written into the nonvolatile memory 70.
Now it is assumed that, in a status that neither “file close write condition” nor “file close extra-write condition” is valid and the area for file data area in the cache memory 80 are storing data to be written into block 39, the write control means 40 receives a write instruction to a file data area (sector 64 to 71).
First, from the sector range subjected to the write instruction, it is judged that the block number is 4 and the write is targeted to file data area. The data of the block number storing part 90 is “39”. Thus, since the block number 4 calculated from the address subjected to the write instruction does not coincide with the stored content “39” in the block number storing part 90, the data being stored in the area for file data area in the cache memory 80 is written into the corresponding area to block number 39 in the nonvolatile memory 70 (steps S101, S106, S107, S115, S118, S119 and S120 in FIG. 14). Then, a read instruction is issued to the read control means 60, thereby the corresponding data to block number 4 in the nonvolatile memory 70 is read and copied into the cache memory 80, thereby, of data stored in the cache memory 80, the corresponding 4 KB data to the sectors 64 to 71 is renewed (steps S121, S122 in FIG. 14). Then, the processing operation of the write control means 40 is finished (step S123 in FIG. 14). As shown in FIG. 15, part of upward-oblique lines indicates the part being subjected to data renewal. Apparent from FIG. 15, in area C (file data area), data of 8 pages from sector 64 to 71 is newly stored.
Then, it is assumed that a write instruction to this file data area (sectors 72 to 75) is received. First, from the sector range subjected to the write instruction, it is judged that the block number is 4 and the write is targeted to file data area. The data of the block number storing part 90 is “4”. Therefore, the block number 4 calculated from the address subjected to the write instruction does coincide with the stored content “4” in the block number storing part 90. So, of data stored in the cache memory 80, the corresponding 2 KB data to the sectors 72 to 75 is renewed (steps S101, S106, S107, S115, S118 and S117 in FIG. 14). Then, the processing operation of the write control means 40 is finished (step S123 in FIG. 14). As shown in FIG. 15, part of down-oblique lines indicates the part (of 4 pages) being subjected to data renewal.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5555391 *Dec 23, 1993Sep 10, 1996Unisys CorporationSystem and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be writtenUS5696929 *Oct 3, 1995Dec 9, 1997Intel CorporationFlash EEPROM main memory in a computer systemUS5805809 *Apr 26, 1995Sep 8, 1998Shiva CorporationInstallable performance accelerator for maintaining a local cache storing data residing on a server computerUS5835942 *Jan 21, 1997Nov 10, 1998Tandem Computers IncorporatedDistributed data cache for cached multiprocessor system with cache control for file-by-file cache statesUS6000006 *Aug 25, 1997Dec 7, 1999Bit Microsystems, Inc.Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storageUS6272587 *May 12, 1999Aug 7, 2001Cummins Engine Company, Inc.Method and apparatus for transfer of data between cache and flash memory in an internal combustion engine control systemUS6301635 *Sep 26, 1997Oct 9, 2001Nokia Mobile Phones LimitedMemory device* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6728876 *Dec 27, 2000Apr 27, 2004Cisco Technology, Inc.Method and apparatus to use non-volatile read/write memory for bootstrap code and processes by relocating write instructionsUS7173863Mar 8, 2004Feb 6, 2007Sandisk CorporationFlash controller cache architectureUS7228411Mar 22, 2004Jun 5, 2007Cisco Technology, Inc.Method and apparatus to use-volatile read/write memory for bootstrap code and processes by relocating write instructionsUS7337266 *Feb 17, 2005Feb 26, 2008Hon Hai Precision Industry Co., Ltd.Data structure design system and method for prolonging the life of an FRAMUS7408834Feb 5, 2007Aug 5, 2008Sandisck Corporation LlpFlash controller cache architectureUS7882299Feb 1, 2011Sandisk CorporationSystem and method for use of on-chip non-volatile memory write cacheUS8281073Feb 2, 2010Oct 2, 2012Canon Kabushiki KaishaInformation processing apparatus and method of controlling sameUS20030189642 *Apr 4, 2002Oct 9, 2003Bean Heather N.User-designated image file identification for a digital cameraUS20050180190 *Feb 17, 2005Aug 18, 2005Shen Cheng Y.Data structure design system and method for prolonging the life of an FRAMUS20050195635 *Mar 8, 2004Sep 8, 2005Conley Kevin M.Flash controller cache architectureUS20060136656 *Dec 21, 2004Jun 22, 2006Conley Kevin MSystem and method for use of on-chip non-volatile memory write cacheUS20070143545 *Feb 5, 2007Jun 21, 2007Conley Kevin MFlash Controller Cache ArchitectureUS20080046660 *Jul 30, 2007Feb 21, 2008Kabushiki Kaisha ToshibaInformation recording apparatus and control method thereofUS20080250202 *Jun 13, 2008Oct 9, 2008Sandisk CorporationFlash controller cache architectureUS20100211743 *Feb 2, 2010Aug 19, 2010Canon Kabushiki KaishaInformation processing apparatus and method of controlling sameUS20110125972 *May 26, 2011Takuya OotaniInformation recording device and information recording methodWO2006068916A1 *Dec 14, 2005Jun 29, 2006Sandisk CorporationSystem and method for use of on-chip non-volatile memory write cache* Cited by examinerClassifications U.S. Classification711/143, 711/E12.019, 711/103, 711/E12.04International ClassificationG11C16/02, G06F12/00, G06F12/08, G06F12/06Cooperative ClassificationG06F12/0804, G06F12/0866, G06F2212/2022European ClassificationG06F12/08B2, G06F12/08B12Legal EventsDateCodeEventDescriptionNov 20, 2000ASAssignmentOwner name: NEC CORPORATION, JAPANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOBUKIYO, TAKAHIRO;REEL/FRAME:011312/0248Effective date: 20001117Jun 23, 2006FPAYFee paymentYear of fee payment: 4Jun 28, 2010FPAYFee paymentYear of fee payment: 8Jun 25, 2014FPAYFee paymentYear of fee payment: 12Sep 11, 2014ASAssignmentOwner name: LENOVO INNOVATIONS LIMITED (HONG KONG), HONG KONGFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEC CORPORATION;REEL/FRAME:033720/0767Effective date: 20140618RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services