WO2000016199A1 - Procede permettant de realiser une table de gestion de memoire et dispositif de memoire - Google Patents
Procede permettant de realiser une table de gestion de memoire et dispositif de memoire Download PDFInfo
- Publication number
- WO2000016199A1 WO2000016199A1 PCT/JP1999/002471 JP9902471W WO0016199A1 WO 2000016199 A1 WO2000016199 A1 WO 2000016199A1 JP 9902471 W JP9902471 W JP 9902471W WO 0016199 A1 WO0016199 A1 WO 0016199A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- management table
- memory management
- logical address
- creation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Definitions
- a memory having a function of retaining data even when power is shut down is managed, and a memory management table for managing identifier information of a memory area as a storage destination of data indicated by a logical address issued by a host is created.
- a method for creating the memory management table that controls the processing and the memory device that implements the memory management table creation ⁇ ⁇ "method, in particular, the startup time of the memory device is shortened, and thereby the system is surely normal.
- the present invention relates to a method for creating a memory management table for realizing operation, and a memory device for implementing the memory management table operation fi ⁇ method.
- nonvolatile memory such as FRAM or EEPROM, or memory such as RAM backed up with a battery is mounted on a memory card or the like, in order to process an access request issued by the host, It is necessary to create a memory management table that manages which logical address data is stored in which physical address.
- the flash memory is divided into, for example, 512 blocks, which are units of data erasing, and each of these blocks is It has, for example, eight sectors as data storage units.
- the data stored in each sector (for example, consisting of 512 bytes) has a logical address issued by the host, and the data stored in one block. All have the same logical address.
- the memory management table is prepared to execute the conversion process from the logical address to the physical address by managing the correspondence between the logical address and the block number.
- the memory management table has a data structure as shown in Figure 3 and Figure 4.
- the data with ' is stored in the flash memory of chip number 1, and the data with logical address 2, 6, ⁇ ⁇ ' is stored in the flash memory of chip number 2, and the logical address 3, 7, It is created based on the premise that data stored in the flash memory with chip number 3 is stored.It is a table part associated with the flash memory with chip number 0, and the storage block number and logical address of logical address 0 are stored. ..
- the destination block number and the storage block number of logical address 5 are managed, and the table part corresponding to the flash memory of chip number 2 contains the storage block number of logical address 2 and the logical address S.
- the storage block number, ⁇ , '' is managed and the storage block number of logical address 3 and the storage block number of logical address 7, ⁇ It has a data structure to manage.
- This memory management table accesses the blocks of the flash memory in order, detects the block number of the block in which data is stored, detects the logical address added to the data, and detects the logical address of the logical address. It is generated by storing the detected block number in the entry of the memory management table pointed to.
- a memory that has been knocked up by a non-volatile memory if a memory that has been knocked up by a non-volatile memory is installed, the initial values are stored in internal registers when the memory is turned on by turning on the power. After the initial settings are made, the memory management table is created by accessing the memory. I was searching.
- the host is notified of the cancellation of the visit, thereby permitting the processing request to the host.
- the host has a problem in that the memory card or the like to be accessed does not easily start up, and the host may erroneously recognize that an error has occurred in the memory card or the like. Disclosure of the invention
- a memory management table for managing identifier information of a memory area serving as a storage destination of data indicated by a logical address issued by a host is set as a management target for a memory having a function of retaining data even when power is turned off.
- the general purpose is to provide a new memory device to implement the method.
- the present invention manages one or a plurality of memories having a function of retaining data even when the power is shut off, and stores data designated by a logical address issued by a host as a storage destination.
- a method for creating a memory management table that manages the creation of a memory management table for managing area identifier information
- the host device can immediately start processing after the memory device is started, and the startup time of the memory device can be shortened.
- FIG. 1 is an explanatory diagram of a flash memory.
- FIG. 2 is an explanatory diagram of a flash memory.
- FIG. 3 is an explanatory diagram of the memory management table.
- FIG. 4 is an explanatory diagram of the memory management table.
- FIG. 5 is a principle configuration diagram of the present invention.
- FIG. 6 is an explanatory diagram of a memory card.
- FIG. 7 is an explanatory diagram of the data storage management table.
- FIG. 8 is an explanatory diagram of the memory management table.
- FIG. 9 is a processing flow of a memory management table creation process.
- FIG. I0 is a processing flow of a memory management table creation process.
- FIG. 11 is a processing flow of a memory management table creation process.
- FIG. 12 is a processing flow of a memory management table creation process.
- FIG. 13 is an explanatory diagram of the process of interrupting the creation of the memory management table.
- FIG. 14 is a processing flow of a memory management table creation process.
- FIG. 15 is an explanatory diagram of a process of creating a memory management table.
- FIG. 16 is a processing flow of a memory management table creation process.
- FIG. 17 is a processing flow of a memory management table creation process.
- FIG. 18 is an explanatory diagram of the process of creating the memory management table.
- FIG. 19 is a processing flow of a memory management table creation process.
- FIG. 20 is a processing flow of a memory management table creation process.
- FIG. 21 is an explanatory diagram of a process of creating a memory management table.
- FIG. 22 is a processing flow of a memory management table creation process.
- FIG. 23 is a processing flow of a memory management table creation process.
- FIG. 24 is a processing flow of a memory management table creation process.
- FIG. 25 is a processing flow of a memory management table creation process.
- FIG. 26 is an explanatory diagram of the process of creating the memory management table. -Best mode for carrying out the invention
- FIG. 5 illustrates the principle configuration of the present invention.
- reference numeral 1 denotes a memory device provided with the present invention, which includes one or a plurality of memories 10 having a function of maintaining data even when power is shut off, and a processing request issued by the host device 2.
- the CPU 11 that receives the data
- the controller 12 that controls the memory 10 by issuing a memory control command in response to the instruction of the CPU 11, and the communication between the memory 10 and the CPU 11 and the controller 12
- a host device includes a bus 13 to be connected, and a host device 2 issues a processing request to the memory device 1.
- Reference numeral 14 denotes a memory management table, which is developed in, for example, the CPU 11 and manages identifier information of a memory area serving as a storage destination of data indicated by a logical address issued by the host device 2; Means, which operates on the CPU 11 to create the memory management table 14; 16 means detection means, which operates on the CPU 11; A means for detecting whether or not it has been issued, and 17 is a notifying means for notifying the host device 2 of the release of the busy state.
- the notifying means 17 when the power is turned on and the initialization is completed, the notifying means 17 immediately notifies the host device 2 of the release of the busy state, and then continues.
- the creation means 15 enters the creation of the memory management table 14 and accesses the memory 10 in units of the memory area until the processing request is issued from the host device 2, whereby the memory area The logical address of the data stored in the memory is acquired, and the memory management table 14 is created from the acquired logical address and the identifier information of the accessed memory area. Then, when an uncreated portion is left in the memory management table 14, the creation unit 15 thereafter terminates the process for the processing request issued by the host device 2, and is thus busy with the host device 2.
- the creating unit 15 when the power is turned on and the initial setting is completed, the creating unit 15 starts to create a part of the memory management table 14 and allocates the memory area. By accessing the memory I in units, the logical address of the data stored in the memory area is obtained, and the obtained logical address and the identifier information of the accessed memory area are used to obtain the logical address of the memory management table 14. Create a part. At this time, the creating means 15 determines the memory management table portion to be created by imposing a limit on the number of memory areas to be accessed, and imposes a limit on the access time, thereby creating a memory management table to be created. Determine the table part.
- the notifying means 17 notifies the host device 2 of the release of the busy state, and subsequently the creating means 15 By starting the creation of the remaining part of the management table 14 and accessing the memory 10 in units of memory area until the host device 2 issues a processing request, the data stored in the memory area is The memory management table 14 is created from the obtained logical address and the obtained logical address and the identifier information of the accessed memory area.
- the creating unit 15 thereafter terminates the process for the processing request issued by the host device 2, and thereby accesses the host device 2. Until the next processing request is issued after the notification of the cancellation, when an uncreated part of the memory management table 14 is created, or when a processing request of the host device 2 is issued, By accessing the memory 10 to which the logical address specified by the processing request is allocated, an uncreated portion of the memory management table 14 is created.
- the notifying unit 17 immediately notifies the host device 2 of the release of the busy state.
- the creating means 15 starts to create an uncreated portion of the memory management table 14 and specifies the memory area as a unit in the processing request.
- a logical address of data stored in the memory area is obtained by accessing the memory 10 to which a logical address is assigned, and the memory is obtained from the obtained logical address and the identifier information of the accessed memory area.
- An uncreated part of the management table 14 is created.
- the creation means i5 creates an uncreated portion of the memory management table 14 when ending access to the entire memory area of the memory 10 to which the logical address specified by the processing request is allocated.
- the processing interrupts the creation of the uncreated portion of the memory management table 14 or cancels the logical address specified by the processing request.
- the creating means I5 starts to create a part of the memory management table 14 and allocates the memory area.
- the logical address of the data stored in the memory area is obtained, and the obtained logical address and the identifier information of the accessed memory area are used to obtain the logical address of the memory management table 14.
- Create a part the creating means 15 determines the memory management table portion to be created by imposing a limit on the number of memory areas to be accessed, and imposes a limit on the access time, thereby creating a memory management table to be created. Determine the table part.
- the creating unit 15 creates a part of the memory management table 14, the notifying unit 1 ⁇ notifies the host device 2 of the release of the busy state, and thereafter, the creating unit 15 processes from the host device 2.
- the memory management table 14 After creating the component, by accessing the memory 10 to which the logical address specified by the processing request is allocated in units of memory area, the logical address of the data stored in the memory area is obtained. Then, an uncreated portion of the memory management table 14 is created from the obtained logical address and the identifier information of the accessed memory area. -At this time, the creation means 15 creates an uncreated portion of the memory management table 14 when ending access to the entire memory area of the memory 10 to which the logical address specified by the processing request is allocated.
- the creation of an uncreated portion of the memory management table I4 is interrupted or specified by a processing request
- the creation of an uncreated portion of the memory management table 14 is interrupted by imposing a restriction on the access time.
- the memory device 1 of the present invention employs a configuration in which, after the initial setting, the memory management table 14 is completed, and then the host device 2 is notified of the busy release, as in the prior art.
- the memory management table 14 instead of creating the memory management table 14, immediately notify the host device 2 of the release of the business, or create only a part of the memory management table 14 and release the busy to the host device 2.
- an uncreated portion of the memory management table 14 is created, or when the host device 2 issues a processing request, it is specified in the processing request. Since the memory management table 14 is created by creating an uncreated part of the memory management table 14 indicated by the logical address, the host device 2 starts the memory device 1 After it has been, so it puts in quickly processing.
- the host device 2 can quickly recognize that the memory device 1 is normal, the host device 2 can start processing without causing an erroneous recognition that an error has occurred in the memory device 1.
- FIG. 6 illustrates a memory card 1a to which the present invention is applied.
- This memory card 1a is removably mounted in a slot of the personal computer 2a, and is equipped with a plurality of flash memories 20 (sometimes only one).
- the flash memory 20 is accessed in response to an access request to be performed.
- the ROM 22 and the SRAM area 2 are used. It has a CPU 21, flash controller 24, host controller 25, buffer 26, RAM 27, etc., and a common bus 28 connecting them.
- the ROM 22 stores a program for realizing access to the flash memory 20.
- the CPU 21 executes a flash controller according to the program. By issuing an access instruction to 24, processing to execute access to the flash memory 20 is performed.
- the first flash memory 20 stores configuration information such as the number of flash memories 20 to be mounted.
- the total memory capacity is specified by reading out the memory capacity per chip recorded in the flash memory 20 and its configuration information, and the personal memory 2 a
- the personal computer 2a specifies an address and issues an access request during normal operation
- the personal computer 2a issues the access request from the memory capacity per chip according to the program stored in the ROM 22. Identify the chip number of the memory 20 and enable the flash memory 20 while enabling the flash memory 20 indicated by the chip number.
- the roller 2 4 and child issues an access instruction, performs processing such as performing access to the flash memory 2 0.
- the flash controller 24 executes access to the flash memory 20 by issuing a command to the flash memory 20 when the CPU 21 issues an access instruction to the flash memory 20.
- the host controller 25 executes an interface process with the personal computer 2a.
- the buffer 26 stores the data to be written to the flash memory 20 and the flash memory 20 Store the data read from.
- the RAM 27 is used as a working memory of the CPU 21 and the like.
- the memory management table 230 (corresponding to the memory management table 14 shown in FIG. 5) having the data structure shown in FIG. 3 is expanded in the RAM area 23 of the CPU 21.
- a data storage management table 231 having a data structure as shown in FIG. 7 for managing whether or not data is stored in each block of the flash memory 20 is developed.
- the flash memory 20 provided in the memory card 1a is divided into 512 blocks serving as data erasing units, and each of these blocks corresponds to a data storage unit. Has eight sectors. As shown in FIG. 2, each sector has an area of 528 bytes, and stores 512-byte data and a logical address of the data.
- the memory management table 230 expanded in the SRAM area 23 is a table portion associated with the flash memory of the chip number 0, and stores the storage block number of the logical address 0,
- the storage block number of the logical address 4 is managed, and the table part corresponding to the flash memory of the chip number 1 is managed, and the storage block number of the logical address 1 and the storage block number of the logical address 5 are managed.
- the chip number 3 is managed.
- the storage block number of logical address 3 and the storage block number of logical address 7, It is managed.
- the management data stored in the memory management table 230 has a 2-byte area as shown in FIG. 8, and a block number represented by 15 bits and an empty entry are provided.
- the most significant bit (“P") that displays a "1" when the entry is in use and a "0" when the entry is in use or has not been created. And are stored.
- the memory management table 230 is initialized to an uncreated state when the power of the memory card la is turned on.
- the memory management table 230 is not completed, and the personal computer 2a is not notified of the busy release, but the memory management table is not managed. Immediately notify personal computer 2a of busy release without creating table 230, or create only part of memory management table 230 and notify personal computer 2a of busy release Then, the configuration is such that processing is performed such that an uncreated portion of the memory management table 230 is created.
- the process of creating the uncreated portion of the memory management table 230 is executed while the processing request is not issued from the personal computer 2a, or synchronized with the access request issued by the personal computer 2a. And execute it.
- step (ST) 1 one block is selected from the unprocessed blocks of the flash memory 20 in a prescribed order. For example, one unprocessed block is selected according to the order from the first block while following the order from the flash memory 20 with the youngest chip number.
- step 2 the logical address stored in the block (however, when there is no data, the logical address is not written) is obtained, and the entry of the memory management table 230 indicated by the logical address is obtained.
- write "0" indicating that it is in use in the p bit (however, since "0" indicating that it is not created is written as the initial value, No write processing is performed for the p bit), thereby creating a table of a part of the entry.
- step 3 it is determined whether or not the selection of all the blocks of one flash memory 20 has been completed.
- the process proceeds to step 4.
- "1" indicating empty is written in the ⁇ bit of the entry of the memory management table 230 indicated by the logical address not written in the flash memory 20.
- the process of step 4 is not performed.
- step 5 it is determined whether or not the selection of all the blocks of all the flash memories 20 has been completed, and when it is determined that the selection has been completed, the processing is terminated, and the completion of the selection is not determined.
- the process proceeds to step 6 to determine whether or not a processing request has been issued from the personal computer 2a. If it is determined that the processing request has not been issued, the process returns to step 1 to perform the table creation process. To continue and determine that a processing request has been issued, record how much table preparation processing has been performed for later processing, and then end the processing.
- the CPU 21 executes the processing flow of FIG. 9 to create an uncreated portion of the memory management table 230 while the processing request is not issued from the personal computer 2a. Is processed.
- the personal computer 2a when performing the processing while the uncreated portion of the memory management table 230 is being processed, the personal computer 2a requests an access request (a processing request for instructing access to the flash memory 20; CPU 21 issues a program address stored in ROM 22.
- the management data (block number) of the memory management table 230 pointed to by the logical address designated by the access request is shown. Read the Zp bit). For example, when the logical address 8 is issued, the management data that can be stored in the entry of the memory management table 230 indicated by the chip number 0 and the row 2 is read according to the memory management table 230 shown in FIG. .
- step 12 it is determined whether the p bit of the read management data indicates “1”, and when it is determined that “1” is displayed, that is, When it is determined that the entry of the memory management table 230 indicated by the issued logical address is empty, the process proceeds to step 13 to determine whether a write command has been issued by the access request.
- step 14 the flash memory 20 to which the issued logical address is allocated is referred to by referring to the data storage management table 23 1. Find the empty block that has it, and write the write data to that block. For example, when the logical address 8 is issued, a free block of the flash memory 20 having the chip number 0 is searched for, and write data is written to the free block. Then, in the following step 15, the block number of the data storage destination is written into the entry of the memory management table 230 pointed to by the issued logical address, and “0” indicating “in use” is written in the P bit. Write it and end the process.
- step 16 when it is determined that the issued command is not a write command according to the determination processing of step 13, the process proceeds to step 16, and the processing corresponding to the command is executed.
- step 16 When entering the step 16 via this processing route, when a read command is issued, a code indicating that there is no data is transferred to the personal computer 2a, and an erase command is issued. At this time, since it has already been deleted, a process of transferring a code indicating the end of the process to the personal computer 2a is performed.
- step 12 when it is determined in step 12 that the p-bit power “1” is not displayed, that is, when the issued logical address points to the memory management table 230 of the memory management table 230
- step I7 the processing flow in FIG. 11
- step 16 when a read command is issued, the data indicated by the block number obtained in step 17 is read from the flash memory 20 to which the issued logical address is assigned, and is read to the personal computer 2 a.
- the erase command is issued, the data is erased and the P bit is written with "1".
- step 17 when it is determined that the regular block number is not registered in the entry of the memory management table 230 pointed to by the issued logical address according to the determination processing in step 17, that is, the entry is not created If it is determined that the block is determined, proceed to step 18 and select one block in the flash memory 20 to which the issued logical address is assigned according to a prescribed order (for example, the order from the top). .
- step 19 it is determined whether or not the block has been selected in accordance with the selection processing in step 18 and when it is determined that the block has been selected, the process proceeds to step 20 and the process proceeds to step 20.
- the logical address to be stored (however, when there is no data, the logical address is not written) is obtained, and the block of the block is stored in the entry of the memory management table 230 indicated by the logical address.
- step I9 when it is determined in step I9 that a block cannot be selected according to the selection processing in step I8, that is, it is determined that all the blocks of the flash memory 20 to which the issued logical address is allocated have been selected. In some cases, the process proceeds to step 21 to write “indicating“ empty ”in the p bit of the entry of the memory management table 230 of the logical address not written in the flash memory 20.
- Step 22 After reading, in Step 22, it is determined whether or not the issued logical address is present at the logical address obtained in Step 20, and when it is determined that the issued logical address is present, Step 13 is performed. Then, the processing described above is performed. At this time, since the regular block number is stored in the entry of the memory management table 230 pointed to by the issued logical address, step 17 is performed in the processing after step 13. The same processing as when entering the processing of step 13 via the above is performed.
- step 22 when it is determined in the determination process of step 22 that the logical address obtained in step 20 does not have the issued logical address, the process proceeds to step 13 to perform the above-described process. In this case, since the entry 1 of the memory management table 230 pointed to by the issued logical address is empty, the process from step 13 onward enters the process of step 13 via step 12 The same processing is performed as at the time.
- the CPU 21 executes the processing flow of FIGS. 10 and 11 so that when an access request is issued from the personal computer 2a, the logic specified by the access request is issued.
- the process is performed so that an uncreated portion of the memory management table 230 is created using the address.
- step 30 determines whether or not the issued logical address has been registered.
- step 31 write the selected block number into the entry of the memory management table 230 taken by the issued logical address, and then proceeds to step 13 to perform the above-described processing.
- step 32 obtains the logical address stored in the block, and to store the block of the block in the entry of the memory management table 230 pointed to by the logical address.
- the search is continued up to a specified number of blocks from the time when the data having the logical address is searched, and at the time when the search is completed, the memory management table 2
- the creation of 30 is interrupted, or as shown in Fig. 13B, the search is continued only for a specified time from the time when the data with that logical address is searched. It is also possible to adopt a configuration in which the creation of the memory management table 230 is interrupted at the time of termination.
- FIG. 14 shows an embodiment of a process flow of the process of creating the memory management table 230.
- the personal computer 2a is immediately notified of the busy release, and then the memory management table 230 is created.
- the creation process was suspended, the processing was performed for the processing request, and the busy release was notified to the personal computer 2a.
- the memory management table 230 is not completed, the creation of the memory management table 230 is continued until the next processing request is issued from the personal computer 2a.
- the configuration to create the management table 230 is 0.
- step 41 the personal computer 2a is notified of busy, and in step 42, initialization is performed by setting an initial value for each internal register, and the initialization is completed. Then, in the following step 43, the busy release is notified to the personal computer 2a.
- step 44 the memory management table 230 is created, and as described in the processing flow of FIG. 9, the memory management table 230 is accessed by accessing the data stored in the flash memory 20. Then, in step 45, the creation process is performed until it is detected that a command interrupt is issued from the personal computer 2a.
- step 45 a command or an interrupt is issued from the personal computer 2a.
- the processing request issued at this time is related to the startup and is not an access request using the memory management table 230.
- step 46 If detected, go to step 46 and notify busy to personal computer 2a
- step 47 it is determined whether or not the memory management table 230 is being created. When it is determined that the memory management table 230 is being created, the process proceeds to step 48, where the memory management table 230 is created. Pause creation of 0.
- step 49 processing for the command or the interrupt issued by the personal computer 2a is performed, and when the processing is completed, in step 50, the personal computer 2a is notified of the busy release, and
- step 51 it is determined whether or not the memory management table 230 is being created. If it is determined that the memory management table 230 is not being created, the process immediately returns to step 45 to determine that the memory management table 230 is being created. If so, the process proceeds to step 52 to resume the creation of the memory management table 230, and then returns to step 45.
- the personal computer 2 a upon completion of the initial setting, the personal computer 2 a is immediately notified of the busy release without starting to create the memory management table 230, and there during the processing request does not come by issuing so processed as will create a memory management table 2 3 0; then, the personal computer 2 a force.
- FIGS. 16 and 17 show another embodiment of the processing flow of the processing for creating the memory management table 230.
- Step 6 2 Notify busy to a, and in the following step 62, initialize the internal registers by setting the initial values.
- the initialization processing is completed, read it and read in step S3.
- the creation of the memory management table 230 is started, and the creation of the memory management table 230 is temporarily stopped in step S4 to create the memory management table 230.
- the personal computer 2 is created. Notify a of a busy solution If to a and restart the creation of the memory management table 230 in the following step 66, and issue a command ⁇ interrupt from the personal computer 2a in the following step 67 Until this is detected, the creation process is continued.
- step 67 a command or an interrupt is issued from the personal computer 2a.
- the processing request issued at this time is related to the startup and is not an access request using the memory management table 230.
- step 68 the process proceeds to step 68 to notify busy to the personal computer 2a, and in step 69, it is determined whether or not the memory management table 230 is being created. If it is determined that it is being created, the process proceeds to step 70, and the creation of the memory management table 230 is suspended.
- step 71 processing for the command or the interrupt issued by the personal computer 2a is performed.
- step 72 the processing flow in FIG. 17
- the personal computer 2a is processed. Notification of the cancellation of the visit is made.
- step 73 it is determined whether the memory management table 230 is being created. If it is determined that the memory management table 230 is not being created, the process immediately returns to step 67 and is being created. When it is determined that is, the process proceeds to step 74, the creation of the memory management table 230 is restarted, and then the process returns to step 67.
- the process of creating a part of the memory management table 230 is performed by using a block of the flash memory 20 accessed when the table is created. This can be realized by limiting the number, or as shown in the processing flow of Fig. 20, by restricting the access time to the flash memory 20 to be accessed when creating a table.
- step 81 the variable i is reset to 0, and in step 82, data is read from the block of the flash memory 20 pointed to by the variable i, and a memory tube table 230 is created.
- step 83 it is determined whether or not the variable i is the same as the predetermined value n. When it is determined that the variable i is not the same, the variable i is increased by 1 at step 84, and the process proceeds to step 82. On the other hand, if it is determined that they are the same, the process proceeds to step 85 to temporarily stop the creation of the memory management table 230, and in step 86, notifies the personal computer 2a of the busy release.
- step 91 in addition to the processing of FIG. 19, the timer time is reset to 0 in step 91, and in step 92 instead of step 83, it is determined whether or not the timer time exceeds a predetermined value T. Proceed to step 85 when it is determined that
- a part of the memory management table 230 created at this time creates a part corresponding to a logical address (usually a small logical address) specified by the access request issued first by the personal computer 2a. It is preferable to go. This is because the memory management table 230 is prepared for the access request issued first by the personal computer 2a.
- FIG. 22 to FIG. 25 do not show an embodiment of a processing flow executed when adopting this configuration. .
- the CPU 2I stores data in the entry of the memory management table 230 pointed to by the logical address specified by the access request.
- the memory management table 230 is created as described in the processing flow of FIG. 10 and FIG. 11. Instead, the process immediately proceeds to step 107 to execute processing for the issued command.
- the chip number 0 and the entry of the memory management table 230 indicated by the row 2 contain data.
- the process immediately proceeds to step 107 to execute the processing for the issued command.
- step 101 when it is determined in step 101 that data is not registered, the process proceeds to step 102 to specify the flash memory 20 to which the issued logical address is allocated.
- step 102 to specify the flash memory 20 to which the issued logical address is allocated.
- step 103 the variable i is set to "0" in step 103, and in step 104, the block pointed to by the variable i of the flash memory 20 identified in step 2 (for example, from the first block)
- step 104 the block pointed to by the variable i of the flash memory 20 identified in step 2 (for example, from the first block)
- the correspondence between the block and the value of variable i is determined according to the order.)
- step 105 it is determined whether or not the data of all the blocks of the flash memory 20 specified in step 102 has been read. If it is determined that the data has not been read, the process proceeds to step 106. Then, the value of the variable i is incremented by one, and then the process returns to step 104. If it is determined in step 105 that data of all blocks has been read, the process proceeds to step 107 to execute processing for the issued command.
- data is registered in each entry of the memory management table 230 indicated by the logical address specified by the access request.
- the data of all the blocks of the flash memory 20 to which the logical address is allocated is read, and the memory management table 230 is created using the data.
- the flash memory 230 accessed 5 times to create the memory management table 230 is accessed again to create the memory management table 230. ⁇ Even if the issued logical address is searched, it will not be able to process the issued command until all blocks in the flash memory 20 have been processed. That Pokona.
- step 115 it is determined whether or not the block having the issued logical address has been read in step 115 corresponding to step 105 of the processing flow of FIG.
- the process immediately proceeds to step 107 to execute the processing for the issued command. This interrupts the creation process and immediately starts processing for the command.
- FIGS. 24 and 25 show one embodiment of a processing flow for realizing this configuration.
- step 123 corresponding to step 103 of the processing flow of FIG. 23 a configuration is adopted in which the variable j is set to “0”, and the processing flow of FIG.
- step 1 28 to read, after creating the memory management table 230 pointed to by the variable i, in the following step 1 29, it is determined whether or not the value of the variable j has reached the specified value.
- the process returns to step 127, and when it is determined that the vehicle has arrived, the process proceeds to step 130 and the process for the issued command is started. It is possible to continue the process of creating the memory management table 230 to some extent from when the logical address "" is searched.
- step i38 the value of the variable i is incremented by one.
- step i a memory management table 230 pointed to by the variable i is created, and in a succeeding step 140, it is determined whether or not the timer has exceeded the specified time, and the time is over. If it is determined that the time has not passed, the process returns to step 1338.If it is determined that the time has expired, the process proceeds to step 141, and the process for the issued command is started.
- FIGS. 22 to 25 The processing flow of FIGS. 22 to 25 has been described by starting the process of creating an uncreated portion of the memory management table 230 when the access request shown in FIG. 21 is issued. That is, after the initial setting is completed, a part of the memory management table 230 is created, and after the busy release is notified to the personal computer 2a, an access request is issued. It was explained that the memory management table 230 was created by executing the processing flow of the above, but it is also possible to search for the key structure to be executed at the time of issuing the access request shown in FIG. 26. .
- the memory management table 230 may be created immediately after completing the initial setting, notifying the personal computer 2a of the busy release immediately, and issuing an access request. is there.
- the present invention has been described with reference to the illustrated embodiments, the present invention is not limited thereto.
- a specific example is to mount the flash memory 20.
- the present invention has been described above, the present invention is not limited to application to the flash memory 2Q, but can be applied to other nonvolatile memories and volatile memories backed up by a battery. .
- the initial setting is performed as in the conventional technique. Then, rather than adopting a configuration in which the memory management table is completed and then the host device is notified of the busy release, the host device is immediately notified of the busy release without creating a memory management table, Creates only a part of the management table, notifies the host device of the busy release, and then creates an uncreated part of the memory management table until the host issues a processing request. When a memory management table is issued, an uncreated part of the memory management table pointed to by the logical address specified in the processing request is created. Since the configuration is such that a cable is created, the host device starts processing immediately after the memory device is started.
- the host device can quickly recognize that the memory device is normal, the host device can start processing without causing an erroneous recognition that an error has occurred in the memory device.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
明細書 メモリ管理テーブル作 法及びメモリ装置 技術分野
本発明は、 電源遮断時にもデータを保持する機能を持つメモリを管理対象とし て、 ホストの発行する論理ァドレスの指すデータの格納先となるメモリ域の識別 子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成 方法と、 そのメモリ管理テーブル作 β^"法を実装するメモリ装置とに関し、 特に、 メモリ装置の立ち上げ時間の短缩を実現するとともに、 それによりシステムが確 実に正常動作に入ることを実現するメモリ管理テーブル作成方法と、 そのメモリ 管理テ一ブル作 fi^法を実装するメモリ装置とに関する。 背景技術
フラッシュメモリや F R AMや E E P R O Mといった不揮発性メモリや、 ノくッ テリでバックアツプされた R A Mなどのメモリを、 メモリカードなどに搭載する 場合には、 ホストの発行するアクセス要求を処理するために、 どの論理アドレス のデータがどの物理ァドレスに格納されているのかということを管理するメモリ 管理テーブルを作成していく必要がある。
フラッシュメモリを具体例にして説明するならば、 フラッシュメモリは、 図 1 に示すように、 データ消去の単位となる例えば 5 1 2個のブロックに分割されて おり、 そして、 これらの各ブロックは、 データの格納単位となる例えば 8個のセ クタを持っている。 各セクタに格納されるデータ (例えば 5 1 2バイ卜で構成さ れる) には、 図 2に示すように、 ホストの発行した論理アドレスが付加されてお り、 1つのブロックに格納されるデータには、 全て同一の論理了ドレスが付加さ れている。
メモリ管理テーブルは、 この論理ァドレスとブ πック番号との対応関係を管理 することで、 論理ァドレスから物理ァドレスへの変換処理を実行するために用意 されるものであり、 フラッシュメモリが 4個搭載される場合を具体例にして説明
するならば、 図 3や図 4に示すようなデータ構造を持つ。
図 3に示すメモリ管理テーブルについて具体的に説明するならば、 このメモリ 管理テーブルは、 論理アドレス 0 , 4 · · 'を持つデータはチップ番号 0のフ ラッシュメモリに格納され、 論理アドレスし 5 · · 'を持つデータはチップ番 号 1のフラッシュメモリに格納され、 論理了ドレス 2 , 6 · · 'を持つデー歹は チップ番号 2のフラッシュメモリに格納され、 論理アドレス 3 , 7 · ■ 'を持つ データはチップ番号 3のフラッシュメモリに格納されるという規約を前提にして 作成されており、 チップ番号 0のフラッシュメモリに対応付けられるテーブル部 分で、 論理ァドレス 0の格納先プロック番号、 論理ァドレス 4の格納先プロック 番号、 . . 'を管理し、 チップ番号 1のフラッシュメモリに対応付けられるテー ブル部分で、 論理ァドレス〖の格納先プロック番号、 論理ァドレス 5の格納先ブ ロック番号、 · · 'を管理し、 チップ番号 2のフラッシュメモリに対応付けられ るテーブル部分で、 論理ァドレス 2の格納先プロック番号、 論理ァドレス Sの格 納先ブロック番号、 · · 'を管理し、 チップ番号 3のフラッシュメモリに対応付 けられるテーブル部分で、 論理ァドレス 3の格納先ブロック番号、 論理ァドレス 7の格納先ブロック番号、 · · 'を管理するというデータ構造を持っている。 このようなデータ構造を持つメモリ管理テーブルに従って、 ホス卜から論理ァ ドレスを指定してアクセス要求が発行されると、 その論理ァドレスの指すチップ 番号及びブロック番号を特定することで、 アクセス先となる物理ァドレスを求め ることができることになる。
このメモリ管理テーブルは、 フラッシュメモリのブロックに順番にァクセスし て、 データの格納されているブロックのブロック番号を検出するとともに、 その データに付加されている論理ァドレスを検出して、 その論理ァドレスの指すメモ リ管理テーブルのェントリーに、 検出したブロック番号を格納していくことで生 成されることになる。
従来のメモリ力一ドなどでは、 不揮発性メモリゃノくッテリでノくックアップされ たメモリを搭載する場合、 メモリに電源を投入することでメモリを立ち上げると きに、 内部レジスタに初期値を設定することで初期設定を行うと、 それに続けて、 メモリにアクセスすることでこのメモリ管理テーブルを作成するという構成を
探っていた。
そして、 このメモリ管理テーブルの作成を完了した時点に、 ホストへビジ一解 除を通知することで、 ホストに対して処理要求を許可していくという構成を採つ ていた。
しかしながら、 従来技術のように、 メモリを立ち上げるときに、 メモリ管理 テーブルの作成を完了させてから、 ホス卜へビジー解除を通知するという構成を 採っていると、 メモリ管理テーブルが完成するまでに時間がかかることから、 ホ ストは、 なかなか処理に入れないという問題点があつた。
そして、 ホストは、 アクセス先のメモリカードなどがなかなか立ち上がらない ことで、 メモリカードなどにエラーが発生したと誤認識してしまうことが起こる という問題点があった。 発明の開示
本発明は電源遮断時にもデータを保持する機能を持つメモリを管理対象として、 ホス卜の発行する論理ァドレスの指すデータの格納先となるメモリ域の識別子情 報を管理するメモリ管理テーブルの作成処理を司るときにあって、 メモリ装置の 立ち上げ時間の短縮を実現するとともに、 それによりシステムが確実に正常動作 に入ることを実現する新たなメモリ管理テーブル作成方法の提供と、 そのメモリ 管理テーブル作成方法を実装する新たなメモリ装置の提供とを総括的な目的とす る。
この目的を達成するため、 本発明は電源遮断時にもデータを保持する機能を持 つ 1つ又は複数のメモリを管理対象として、 ホス卜の発行する論理ァドレスの指 すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テ一ブルの 作成処理を司るメモリ管理テーブル作成方法であつて、
ホストに対してビジ一解除を通知した後、 メモリ管理テ一ブルの未作成部分の 作成に入って、 ホストから処理要求が発行されるまでの間、 上記メモリ域を単位 にして上記メモリにアクセスすることで、 上記メモリ域に格納されるデータの持 つ論理アドレスを取得して、 その取得した論理アドレスと、 アクセスした上記メ モリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくよう
に処理するように構成される。
このようなメモリ管理テーブル作成方法によれば、 ホスト装置は、 メモリ装置 が起動された後、 迅速に処理に入ることができ、 メモリ装置の立ち上げ時間を短 縮することができる。 図面の簡単な説明
本発明の他の目的、 特徵及び利点は添付の図面を参照しながら以下の詳细な説 明を読むことにより一層明瞭となるであろう。
図 1は、 フラッシュメモリの説明図である。
図 2は、 フラッシュメモリの説明図である。
図 3は、 メモリ管理テーブルの説明図である。
図 4は、 メモリ管理テーブルの説明図である。
図 5は、 本発明の原理構成図である。
図 6は、 メモリカードの説明図である。
図 7は、 データ格納管理テーブルの説明図である。
図 8は、 メモリ管理テーブルの説明図である。
図 9は、 メモリ管理テーブルの作成処理の処理フローである。
図 i 0は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 1は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 2は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 3は、 メモリ管理テーブルの作成中断処理の説明図である。
図 1 4は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 5は、 メモリ管理テーブルの作成処理の説明図である。
図 1 6は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 7は、 メモリ管理テーブルの作成処理の処理フローである。
図 1 8は、 メモリ管理テーブルの作成処理の説明図である。
図 1 9は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 0は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 1は、 メモリ管理テーブルの作成処理の説明図である。
図 2 2は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 3は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 4は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 5は、 メモリ管理テーブルの作成処理の処理フローである。
図 2 6は、 メモリ管理テーブルの作成処理の説明図である。 ― 発明を実施するための最良の形態
以下、 本発明の実施例を図面に基づいて説明する。
図 5に本発明の原理構成を図示する。
図中、 1は本発明を具備するメモリ装置であって、 電源遮断時にもデ一夕を保 持する機能を持つ 1つ又は複数のメモリ 1 0と、 ホスト装置 2の発行する処理要 求を受け取る C P U 1 1と、 C P U 1 1の指示に応答してメモリ制御のコマンド を発行することでメモリ 1 0を制御するコントローラ 1 2と、 メモリ 1 0と C P U 1 1 とコントローラ 1 2との間を接続するバス 1 3とを備えるもの、 2はホス ト装置であって、 メモリ装置 1に対して処理要求を発行するものである。
1 4はメモリ管理テーブルであって、 例えば C P U 1 1に展開されて、 ホスト 装置 2の発行する論理ァドレスの指すデータの格納先となるメモリ域の識別子情 報を管理するもの、 1 5は作成手段であって、 C P U 1 1上で動作して、 メモリ 管理テーブル 1 4を作成するもの、 1 6は検出手段であって、 C P U 1 1上で動 作して、 ホスト装置 2から処理要求が発行されたのか否かを検出するもの、 1 7 は通知手段であって、 ホスト装置 2に対してビジー状態の解除を通知するもので ある。
このように構成される本発明のメモリ装置 1では、 電源が投入されて初期設定 が終了すると、 通知手段 1 7は、 直ちに、 ホスト装置 2に対してビジー状態の解 除を通知し、 それに続けて、 作成手段 1 5は、 メモリ管理テーブル 1 4の作成に 入って、 ホスト装置 2から処理要求が発行されるまでの間、 メモリ域を単位にし てメモリ 1 0にアクセスすることで、 メモリ域に格納されるデータの持つ論理ァ ドレスを取得して、 その取得した論理アドレスと、 アクセスしたメモリ域の識別 子情報とからメモリ管理テ一ブル 1 4を作成していく。
そして、 メモリ管理テーブル 1 4に未作成部分が残されているときには、 その 後、 作成手段 1 5は、 ホスト装置 2の発行する処理要求に対する処理を終了する ことで、 ホスト装置 2に対してビジー解除を通知した後、 次の処理要求が発行さ れるまでの間、 メモリ管理テーブル 1 4の未作成部分を作成していったり、 ホス ト装置 2の処理要求が発行されるときに、 その処理要求で指定される論理ァト^レ スの割り付けられるメモリ 1 0にアクセスすることで、 メモリ管理テーブル 1 4 の未作成部分を作成していく。
また、 このように構成される本発明のメモリ装置 1では、 電源が投入されて初 期設定が終了すると、 作成手段 1 5は、 メモリ管理テーブル 1 4の一部分の作成 に入って、 メモリ域を単位にしてメモリ I ◦にアクセスすることで、 メモリ域に 格納されるデータの持つ論理ァドレスを取得して、 その取得した論理ァドレスと、 アクセスしたメモリ域の識別子情報とからメモリ管理テーブル 1 4の一部分を作 成する。 このとき、 作成手段 1 5は、 アクセスするメモリ域の数に制限を課する ことで、 作成するメモリ管理テーブル部分を決定したり、 アクセスする時間に制 限を課することで、 作成するメモリ管理テーブル部分を決定していく。
作成手段 1 5がメモリ管理テーブル 1 4の"^分を作成すると、 通知手段 1 7 は、 ホスト装置 2に対してビジ一状態の解除を通知し、 それに続けて、 作成手段 1 5は、 メモリ管理テーブル 1 4の残りの部分の作成に入って、 ホスト装置 2が 処理要求を発行するまでの間、 メモリ域を単位にしてメモリ 1 0にアクセスする ことで、 メモリ域に格納されるデータの持つ論理アドレスを取得して、 その取得 した論理ァドレスと、 アクセスしたメモリ域の識別子情報とからメモリ管理テー ブル 1 4を作成していく。
そして、 メモリ管理テーブル 1 4に未作成部分が残されているときには、 その 後、 作成手段 1 5は、 ホスト装置 2の発行する処理要求に対する処理を終了する ことで、 ホスト装置 2に対してビジ一解除を通知した後、 次の処理要求が発行さ れるまでの間、 メモリ管理テーブル 1 4の未作成部分を作成していったり、 ホス ト装置 2の処理要求が発行されるときに、 その処理要求で指定される論理ァドレ スの割り付けられるメモリ 1 0にアクセスすることで、 メモリ管理テーブル 1 4 の未作成部分を作成していく。
また、 このように構成される本発明のメモリ装置 1では、 電源が投入されて初 期設定が終了すると、 通知手段 1 7は、 直ちに、 ホスト装置 2に対してビジー状 態の解除を通知し、 その後、 作成手段 1 5は、 ホスト装置 2から処理要求が発行 されるときに、 メモリ管理テーブル 1 4の未作成部分の作成に入って、 メモリ域 を単位にして、 その処理要求で指定される論理アドレスの割り付けられるメ毛リ 1 0にアクセスすることで、 メモリ域に格納されるデータの持つ論理アドレスを 取得して、 その取得した論理アドレスと、 アクセスしたメモリ域の識別子情報と からメモリ管理テーブル 1 4の未作成部分を作成していく。
このとき、 作成手段 i 5は、 処理要求で指定される論理アドレスの割り付けら れるメモリ 1 0の持つ全メモリ域へのアクセスを終了するときに、 メモリ管理 テーブル 1 4の未作成部分の作成を中断したり、 処理要求で指定される論理アド レスを持つメモリ域へのアクセスを検出するときに、 メモリ管理テーブル 1 4の 未作成部分の作成を中断したり、 処理要求で措定される論理ァドレスを持つメモ リ域へのァクセスを検出した後、 アクセスするメモリ域の数に制限を課すること で、 メモリ管理テーブル 1 4の未作成部分の作成を中断したり、 処理要求で指定 される論理ァドレスを持つメモリ域へのアクセスを検出した後、 アクセスする時 間に制限を課することで、 メモリ管理テーブル 1 4の未作成部分の作成を中断し ていく。
また、 このように構成される本発明のメモリ装置 1では、 電源が投入されて初 期設定が終了すると、 作成手段 I 5は、 メモリ管理テーブル 1 4の一部分の作成 に入って、 メモリ域を単位にしてメモリ 1 0にアクセスすることで、 メモリ域に 格納されるデータの持つ論理ァドレスを取得して、 その取得した論理ァドレスと、 アクセスしたメモリ域の識別子情報とからメモリ管理テーブル 1 4の一部分を作 成する。 このとき、 作成手段 1 5は、 アクセスするメモリ域の数に制限を課する ことで、 作成するメモリ管理テーブル部分を決定したり、 アクセスする時間に制 限を課することで、 作成するメモリ管理テーブル部分を決定していく。
作成手段 1 5がメモリ管理テーブル 1 4の一部分を作成すると、 通知手段 1 Ί は、 ホスト装置 2に対してビジー伏態の解除を通知し、 その後、 作成手段 1 5は、 ホスト装置 2から処理要求が発行されるときに、 メモリ管理テーブル 1 4の未作
成部分の作成に入って、 メモリ域を単位にして、 その処理要求で指定される論理 アドレスの割り付けられるメモリ 1 0にアクセスすることで、 メモリ域に格納さ れるデータの持つ論理アドレスを取得して、 その取得した論理アドレスと、 ァク セスしたメモリ域の識別子情報とからメモリ管理テーブル 1 4の未作成部分を作 成していく。 ― このとき、 作成手段 1 5は、 処理要求で指定される論理アドレスの割り付けら れるメモリ 1 0の持つ全メモリ域へのアクセスを終了するときに、 メモリ管理 テーブル 1 4の未作成部分の作成を中断したり、 処理要求で措定される論理アド レスを持つメモリ域へのアクセスを検出するときに、 メモリ管理テーブル 1 4の 未作成部分の作成を中断したり、 処理要求で指定される論理アドレスを持つメモ リ域へのァクセスを検出した後、 アクセスするメモリ域の数に制限を課すること で、 メモリ管理テーブル I 4の未作成部分の作成を中断したり、 処理要求で指定 される論理ァドレスを持つメモリ域へのアクセスを検出した後、 アクセスする時 間に制限を課することで、 メモリ管理テーブル 1 4の未作成部分の作成を中断し ていく。
このように、 本発明のメモリ装置 1では、 従来技術のように、 初期設定を行つ た後、 メモリ管理テーブル 1 4を完成させてからホスト装置 2にビジー解除を通 知するという構成を採るのではなくて、 メモリ管理テーブル 1 4を作成せずに、 直ちに、 ホスト装置 2にビジ一解除を通知したり、 メモリ管理テーブル 1 4の一 部分だけを作成して、 ホスト装置 2にビジー解除を通知し、 その後、 ホスト装置 2が処理要求を発行するまでの間、 メモリ管理テーブル 1 4の未作成部分を作成 したり、 ホスト装置 2が処理要求が発行するときに、 その処理要求で指定される 論理アドレスの指すメモリ管理テーブル 1 4の未作成部分を作成することで、 メ モリ管理テーブル 1 4を作成するという構成を採ることから、 ホスト装置 2は、 メモリ装置 1が起動された後、 迅速に処理に入れるようになる。
そして、 ホスト装置 2は、 迅速にメモリ装置 1が正常であることを認識できる ことで、 メモリ装置 1にエラーが発生しているという誤認識を起こすことなく、 処理に入れるようになる。
図 6に、 本発明の適用されるメモリカード 1 aを図示する。
このメモリカード 1 aは、 パーソナルコンピュータ 2 aの持つスロッ卜に着脱 自在に装着され、 複数のフラッシュメモリ 2 0 ( 1つしか搭載されないこともあ る) を搭載して、 パーソナルコンピュータ 2 aの発行するアクセス要求に応答し て、 このフラッシュメモリ 2 0へのアクセス処理を実行するものであり、 この処 理を実現するために、 フラッシュメモリ 2 0の他に、 R O M 2 2及び S R AM領 域 2 3を持つ C P U 2 1、 フラッシュコントローラ 2 4、 ホストコントローラ 2 5、 バッファ 2 6、 R AM 2 7などを備えるとともに、 それらを接続する共通バ ス 2 8を備えている。
この R O M 2 2には、 フラッシュメモリ 2 0へのアクセスを実現するプログラ 厶が格納されており、 C P U 2 1は、 パーソナルコンピュータ 2 aがアクセス要 求を発行するときに、 そのプログラムに従って、 フラッシュコントローラ 2 4に 対してアクセス指示を発行することで、 フラッシュメモリ 2 0へのアクセスを実 行する処理を行う。
更に詳細に説明するならば、 先頭のフラッシュメモリ 2 0には、 搭載されるフ ラッシュメモリ 2 0の個数などの構成情報が格納されているので、 C P U 2 1は、 メモリカード 1 aの起動時に、 R OM 2 2に格納されるプログラムに従って、 フ ラッシュメモリ 2 0に記録される 1チップ当たりのメモリ容量とその構成情報と を読み出すことで全メモリ容量を特定して、 それをパーソナルコンピュータ 2 a に通知したり、 通常の動作時に、 パーソナルコンピュータ 2 aがアドレスを指定 してアクセス要求を発行すると、 R O M 2 2に格納されるプログラムに従って、 その 1チップ当たりのメモリ容量から、 アクセス先となるフラッシュメモリ 2 0 のチップ番号を特定して、 そのチップ番号の指すフラッシュメモリ 2 0をイネ一 ブル化しつつ、 フラッシュコントローラ 2 4に対してアクセス指示を発行するこ とで、 フラッシュメモリ 2 0へのアクセスを実行するなどの処理を行う。
フラッシュコントローラ 2 4は、 C P U 2 1からフラッシュメモリ 2 0へのァ クセス指示が発行されるときに、 フラッシュメモリ 2 0にコマンドを発行するこ とで、 フラッシュメモリ 2 0へのアクセスを実行する。 ホストコントロ一ラ 2 5 は、 パーソナルコンピュータ 2 aとの間のインタフェース処理を実行する。 ノくッ ファ 2 6は、 フラッシュメモリ 2 0に書き込むデータや、 フラッシュメモリ 2 0
から読み出したデータを格納する。 R A M 2 7は、 C P U 2 1の作業用メモリな どに用いられる。
C P U 2 1の持つ S R AM領域 2 3には、 図 3に示したようなデータ構造を持 つメモリ管理テーブル 2 3 0 (図 5に示したメモリ管理テーブル 1 4に相当す る) が展開されるとともに、 フラッシュメモリ 2 0の各ブロックにデータ力格納 されているのか否かを管理する図 7に示すようなデータ構造を持つデータ格納管 理テーブル 2 3 1が展開されている。
以下説明の便宜上、 フラッシュメモリ 2 0として、 図 1及び図 2に説明したも のを想定するとともに、 メモリ管理テーブル 2 3 0として、 図 3に説明したもの を想定する。
すなわち、 メモリカード 1 aの備えるフラッシュメモリ 2 0は、 図 3に示すよ うに、 データ消去の単位となる 5 1 2個のブロックに分割されており、 これらの 各ブロックは、 データの格納単位となる 8個のセクタを持っている。 そして、 各 セクタは、 図 2に示すように、 5 2 8バイ卜の領域を有しており、 5 1 2バイト のデータと、 そのデータの持つ論理アドレスとを格納する。
また、 S R AM領域 2 3に展開されるメモリ管理テーブル 2 3 0は、 図 3に示 すように、 チップ番号 0のフラッシュメモリに対応付けられるテーブル部分で、 論理ァドレス 0の格納先プロック番号、 論理ァドレス 4の格納先プロック番号、 ■ · 'を管理し、 チップ番号 1のフラッシュメモリに対応付けられるテーブル部 分で、 論理ァドレス 1の格納先プロック番号、 論理ァドレス 5の格納先プロック 番号、 · · 'を管理し、 チップ番号 2のフラッシュメモリに対応付けられるテー ブル部分で、 論理ァドレス 2の格納先プロック番号、 論理ァドレス 6の格納先ブ ロック番号、 · · 'を管理し、 チップ番号 3のフラッシュメモリに対応付けられ るテーブル部分で、 論理ァドレス 3の格納先ブロック番号、 論理ァドレス 7の格 納先ブロック番号、 · · 'を管理している。
このメモリ管理テーブル 2 3 0に格納されている管理データは、 図 8に示すよ うに、 2バイトの領域を有しており、 1 5ビットで表されるブロック番号と、 そ のェントリ一が空いているときに " 1 " を表示し、 そのェントリ一が使用中ある いは未作成のときに " 0 " を表示する最上位ビッ ト (以下、 Pビッ 卜と称する)
とを格納する。
ここで、 この pビットが " 0 " で、 そのエント リ一が使用中のときには、 その ェントリーに正規のブロック番号が登録されることになる力 \ そのェントリーが 未作成のときには、 そのェントリーにあり得ない非正規のブロック番号が登録さ れることになる。 なお、 このメモリ管理テーブル 2 3 0は、 メモリカード l aの 電源投入時に、 未作成の状態に初期化されることになる。
図 5で説明したように、 本発明では、 初期設定を行った後、 メモリ管理テ一ブ ル 2 3 0を完成させてからパーソナルコンピュータ 2 aにビジー解除を通知する のではなくて、 メモリ管理テーブル 2 3 0を作成せずに、 直ちに、 パーソナルコ ンピュ一タ 2 aにビジー解除を通知したり、 メモリ管理テーブル 2 3 0の一部分 だけを作成して、 パーソナルコンピュータ 2 aにビジー解除を通知し、 その後、 メモリ管理テーブル 2 3 0の未作成部分を作成していくように処理する構成を ¾つている。
このメモリ管理テーブル 2 3 0の未作成部分の作成処理は、 パーソナルコン ピュー夕 2 aから処理要求が発行されない間に実行したり、 パーソナルコンビ ユー夕 2 aがアクセス要求が発行するときにそれと同期して実行する構成を採つ ている。
メモリ管理テーブル 2 3 0の全体的な作成処理の実施例の説明に入る前に、 図 9ないし図 1 1に示す処理フローに従って、 このメモリ管理テーブル 2 3 0の未 作成部分の作成処理について説明する。
すなわち、 前者の構成に従って、 メモリ管理テーブル 2 3 0の未作成部分の作 成処理を行うときには、 初期化を実行してパーソナルコンピュータ 2 aにビジ一 伏態の解除を通知したり、 パーソナルコンピュータ 2 aの処理要求に応答して処 理を行って、 その処理の終了に同期してパーソナルコンピュータ 2 aにビジー状 態の解除を通知すると、 C P U 2 1は、 R O M 2 2に格納されるプログラムに 従って、 図 9の処理フローに示すように、 先ず最初に、 ステップ (S T) 1で、 未処理のフラッシュメモリ 2 0のブロックから、 規定の順番に従ってブロックを 1つ選択する。 例えば、 若いチップ番号のフラッシュメモリ 2 0からの順番に従 いつつ、 先頭ブロックからの順番に従って未処理のブロックを 1つ選択するので
の
続いて、 ステップ 2で、 そのブロックに格納される論理アドレス (但し、 デー 夕がないときには、 論理アドレスも書き込まれていない) を取得して、 その論理 アドレスの指すメモリ管理テーブル 2 3 0のエントリーに、 そのブロックのブ ロック番号を書き込むとともに、 pビットに使用中を表示する " 0 " を書き む (但し、 初期値として未作成を表示する " 0 " が書き込まれているので、 実際に は pビットに対しての書き込み処理は行わない) ことで、 そのエントリ一部分の テーブルを作成する。
続いて、 ステップ 3で、 1つのフラッシュメモリ 2 0の持つ全ブロックの選択 を終了したのか否かを判断して、 全ブロックの選択を終了したことを判断すると きには、 ステップ 4に進んで、 そのフラッシュメモリ 2 0に書き込まれていない 論理ァドレスの指すメモリ管理テーブル 2 3 0のエントリーの ρビットに、 空き を示す " 1 " を書き込む。 一方、 ステップ 3で、 1つのフラッシュメモリ 2 0の 持つ全プロックの選択を終了していないことを判断するときには、 このステップ 4の処理は行わない。
続いて、 ステップ 5で、 全フラッシュメモリ 2 0の持つ全ブロックの選択を終 了したのか否かを判断して、 選択の終了を判断するときには、 処理を終了し、 選 択の終了を判断しないときには、 ステップ 6に進んで、 パーソナルコンピュータ 2 aから処理要求が発行されたのか否かを判断して、 処理要求が発行されていな いことを判断するときには、 ステップ 1に戻ってテーブル作成処理を続行し、 処 理要求が発行されたことを判断するときには、 後の処理のためにどこまでのテー ブル作成処理を行ったのかを記録してから、 処理を終了する。
このようにして、 C P U 2 1は、 図 9の処理フローを実行することで、 パーソ ナルコンピュータ 2 aから処理要求が発行されない間、 メモリ管理テーブル 2 3 0の未作成部分を作成していくように処理するのである。
また、 後者の構成に従って、 メモリ管理テーブル 2 3 0の未作成部分の ί乍成処 理を行うときには、 パーソナルコンピュータ 2 aがアクセス要求 (フラッシュメ モリ 2 0に対するアクセスを指示する処理要求であり、 論理ァドレスが指定され ることになる) を発行すると、 C P U 2 1は、 R OM 2 2に格納されるプログラ
厶に従って、 図 1 0及び図 1 1の処理フローに示すように、 先ず最初に、 ステツ プ 1 1で、 アクセス要求で指定される論理アドレスの指すメモリ管理テーブル 2 3 0の管理データ (ブロック番号 Zpビット) を読み出す。 例えば、 論理アドレ ス 8が発行されるときには、 図 3に示すメモリ管理テーブル 2 3 0に従って、 チップ番号 0及び行 2の指すメモリ管理テーブル 2 3 0のェントリーに格納ぎれ る管理データを読み出すのである。
铳いて、 ステップ 1 2で、 読み出した管理データの pビットが " 1 " を表示し ているのか否かを判断して、 " 1 " を表示していることを判断するとき、 すなわ ち、 発行された論理ァドレスの指すメモリ管理テーブル 2 3 0のェントリーが空 いていることを判断するときには、 ステップ 1 3に進んで、 アクセス要求でライ トコマンドが発行されたのか否かを判断する。
この判断処理に従って、 ライトコマンドが発行されたことを判断するときには、 ステップ 1 4に進んで、 データ格納管理テーブル 2 3 1を参照することで、 発行 された論理ァドレスの割り付けられるフラッシュメモリ 2 0の持つ空きブロック を探し出して、 そのブロックにライトデータを書き込む。 例えば、 論理アドレス 8が発行されるときには、 チップ番号 0のフラッシュメモリ 2 0の持つ空きブ ロックを探し出して、 その空きブロックにライトデータを書き込むのである。 そ して、 続くステップ 1 5で、 発行された論理アドレスの指すメモリ管理テーブル 2 3 0のエントリ一に、 データ格納先のブロック番号を書き込むとともに、 P ビットに、 使用中を示す " 0 " を書き込んで処理を終了する。
一方、 ステップ 1 3の判断処理に従って、 発行されたコマンドがライトコマン ドでないことを判断するときには、 ステップ 1 6に進んで、 そのコマンドに応じ た処理を実行する。 この処理ルートを経由してステップ 1 6に入る場合、 リード コマンドが発行されるときには、 データがないことを示すコードをパーソナルコ ンピュ一タ 2 aに転送する処理を行い、 消去コマンドが発行されるときには、 既 に消去されているので、 処理終了を示すコ一ドをパーソナルコンピュータ 2 aに 転送する処理を行う。
一方、 ステップ 1 2で pビッ ト力 " 1 " を表示していないことを判断するとき、 すなわち、 発行された論理ァドレスの指すメモリ管理テーブル 2 3 0のェント
リーが使用中か未作成のどちらかであることを判断するときには、 ステップ I 7 (図 1 1の処理フロー) に進んで、 そのエントリーに正規のブロック番号が登録 されているのか否かを判断する。
この判断処理に従って、 発行された論理ァドレスの指すメモリ管理テーブル 2 3 0のェントリーに正規のブロック番号が登録されていることを判断するとき^ すなわち、 そのエントリーが使用中であることを判断するときには、 ステップ 3 に進んで、 上述した処理を行う。 ここで、 フラッシュメモリ 2 0は上書きできな いので、 ライトコマンドが発行されるときには、 発行された論理アドレスが割り 付けられるフラッシュメモリ 2 0の持つ空きブロックを探し出して、 その空きブ ロックにライトデータを書き込むとともに、 そのライトデータにより更新される 古いデータを消去する処理を行う。
なお、 この処理ルートを経由するときには、 pビットは既に " 0 " を表示して いるので、 ステップ 1 5では ρビッ 卜に " 0 " を書き込むことは行わない。 また、 ステップ 1 6では、 リードコマンドが発行されるときには、 発行された論理アド レスの割り付けられるフラッシュメモリ 2 0から、 ステップ 1 7で取得したブ ロック番号の指すデータを読み出してパーソナルコンピュータ 2 aに転送する処 理を行い、 消去コマンドが発行されるときには、 そのデータを消去するとともに、 Pビットに " 1 " を書き込む処理を行う。
一方、 ステップ 1 7の判断処理に従って、 発行された論理アドレスの指すメモ リ管理テーブル 2 3 0のエントリーに正規のブロック番号が登録されていないこ とを判断するとき、 すなわち、 そのエントリーが未作成であることを判断すると きには、 ステップ 1 8に進んで、 発行された論理アドレスの割り付けられるフ ラッシュメモリ 2 0の持つプロックを規定の順番 (例えば先頭からの順番) に 従って 1つ選択する。
続いて、 ステップ 1 9で、 ステップ 1 8の選択処理に従ってブロックを選択で きたのか否かを判断して、 ブロックを選択できたことを判断するときには、 ス テツプ 2 0に進んで、 そのブロックに格納される論理アドレス (但し、 データが ないときには、 論理アドレスも書き込まれていない) を取得して、 その論理アド レスの指すメモリ管理テーブル 2 3 0のェントリーに、 そのブロックのブロック
番号を書き込むとともに、 Pビッ 卜に使用中を表示する " 0 " を書き込む (但し、 初期値として未作成を表示する " 0 " が書き込まれているので、 実際には pビッ 卜に対しての書き込み処理は行わない) ことで、 そのエントリ一部分のテーブル を作成してから、 ステップ 1 8に戻っていく。
一方、 ステップ I 9で、 ステップ I 8の選択処理に従ってブロックを選択でき ないことを判断するとき、 すなわち、 発行された論理アドレスの割り付けられる フラッシュメモリ 2 0の持つ全ブロックを選択したことを判断するときには、 ス テツプ 2 1に進んで、 そのフラッシュメモリ 2 0に書き込まれていない論理アド レスの措すメモリ管理テーブル 2 3 0のェントリーの pビットに、 空きを示す " を書き込む。
読いて、 ステップ 2 2で、 ステップ 2 0で取得した論理アドレスに、 発行され た論理ァドレスがぁるのか否かを判断して、 発行された論理ァドレスがあること を判断するときには、 ステップ 1 3に進んで、 上述した処理を行う。 このときに は、 発行された論理アドレスの指すメモリ管理テーブル 2 3 0のエントリーに正 規のブ口ック番号が格納された状態となるので、 ステップ 1 3以降の処理では、 ステップ 1 7を経由してステップ 1 3の処理に入るときと同じ処理を行うことに なる。
一方、 ステップ 2 2の判断処理で、 ステップ 2 0で取得した論理ァドレスに、 発行された論理アドレスがないことを判断するときには、 ステップ 1 3に進んで、 上述した処理を行う。 このときには、 発行された論理アドレスの指すメモリ管理 テーブル 2 3 0のエントリ一が空いていることになるので、 ステップ 1 3以降の 処理では、 ステップ 1 2を経由してステップ 1 3の処理に入るときと同じ処理を 行うことになる。
このようにして、 C P U 2 1は、 図 1 0及び図 1 1の処理フローを実行するこ とで、 パーソナルコンピュータ 2 aからアクセス要求が発行されると、 そのァク セス要求で指定される論理ァドレスを使って、 メモリ管理テーブル 2 3 0の未作 成部分を作成していくように処理するのである。
この図 1 0及び図 1 1の処理フローでは、 パーソナルコンピュータ 2 aがァク セス要求を発行するときに、 そのアクセス要求で指定される論理ァドレスの指す
メモリ管理テーブル 2 3 0のエントリーが未作成であるときには、 その論理アド レスの割り付けられるフラッシュメモリ 2 0の持つ全ブロックをサーチして、 メ モリ管理テーブル 2 3 0を作成していくという構成を採ったが、 図 i 1の処理フ ローに代えて図 1 2の処理フローを実行することで、 その論理アドレスを持つ データが検索された時点で、 そのサーチを打ち切ってメモリ管理テーブル 2 3"0 の作成を中断していくという構成を採ることも可能である。
図 1 2では、 ステップ 1 9でブロックを選択できたことを判断するときには、 ステップ 3 0に進んで、 発行された論理アドレスが登録されているか否かを判断 して、 登録されていることを判断するときにはステップ 3 1に進んで発行された 論理アドレスの措すメモリ管理テーブル 2 3 0のエントリ一に、 選択したブロッ ク番号を書き込んでステップ 1 3に進み上述した処理を行う。 一方、 登録されて いないことを判断するときにはステップ 3 2に進んで、 そのブロックに格納され る論理ァドレスを取得して、 その論理ァドレスの指すメモリ管理テーブル 2 3 0 のエントリーに、 そのブロックのブロック番号を書き込むとともに、 pビットに 使用中を表示する " 0 " を書き込むことで、 そのエントリ一部分のテーブルを作 成してから、 ステップ 1 8に戻っていく。
更に、 このとき、 図 1 3 Aに示すように、 その論理アドレスを持つデータが検 索された時点から、 規定の数のブロックまでサーチを続けて、 それが終了する時 点でメモリ管理テーブル 2 3 0の作成を中断していくという構成を採ったり、 図 1 3 Bに示すように、 その論理アドレスを持つデータが検索された時点から、 規 定時間の間だけサーチを続けて、 それが終了する時点でメモリ管理テーブル 2 3 0の作成を中断していくという構成を採ることも可能である。
ここで、 ァクセス要求で措定される論理アドレスの itすメモリ管理テ一ブル 2 3 0のエントリ一が未作成であるときに、 その論理アドレスの割り付けられるフ ラッシュメモリ 2 0の持つ全ブロックをサーチするという方法を採ると、 そのフ ラッシュメモリ 2 0を再びサーチする必要がないという利点が得られる。 一方、 アクセス要求で指定される論理了ドレスの指すメモリ管理テーブル 2 3 0のェン トリーが未作成であるときに、 その論理ァドレスを持つデータが検索された時点 で、 そのサーチを打ち切るという方法を採ると、 アクセス要求に対して迅速に応 i 6
答できるという利点が得られる。
次に、 メモリ管理テーブル 2 3 0の全体的な作成処理の実施例について説明す 図 1 4に、 メモリ管理テーブル 2 3 0の作成処理の処理フローの一実施例を図 示する。
この処理フローでは、 図 1 5に示すように、 初期設定を終了すると、 パーソナ ルコンピュータ 2 aに対して直ちにビジー解除を通知してから、 メモリ管理テー ブル 2 3 0の作成処理に入って、 パーソナルコンピュータ 2 aから立ち上げに必 要となる処理要求が発行されると、 その作成処理を一時停止して、 その処理要求 に対する処理を行ってパーソナルコンピュータ 2 aに対してビジー解除を通知し た後、 メモリ管理テーブル 2 3 0が完成されていないときには、 パーソナルコン ピュータ 2 aから次の処理要求が発行されるまでの間、 メモリ管理テーブル 2 3 ◦の作成を続行していくことで、 メモリ管理テーブル 2 3 0を作成するという構 成 つてい 0。
すなわち、 C P U 2 1は、 メモリカード 1 aに電源が投入されることで立ち上 げられると、 R O M 2 2に格納されるプログラムに従って、 図 1 4の処理フロー に示すように、 先ず最初に、 ステップ 4 1で、 パーソナルコンピュータ 2 aに対 してビジーを通知し、 続くステップ 4 2で、 内部の各レジス夕に初期値を設定す ることで初期化処理を行い、 その初期化処理を終了すると、 続くステップ 4 3で、 パーソナルコンピュータ 2 aに対してビジー解除を通知する。
続いて、 ステップ 4 4で、 メモリ管理テーブル 2 3 0の作成に入って、 図 9の 処理フローで説明したように、 フラッシュメモリ 2 0の格納データにアクセスす ることでメモリ管理テーブル 2 3 0を作成し、 铙くステップ 4 5で、 パーソナル コンピュータ 2 aからコマンドゃ割り込みが発行されることが検出されるまでの 間、 その作成処理を铙けていく。
続いて、 ステップ 4 5で、 パーソナルコンピュータ 2 aからコマンドや割り込 みが発行 (この時点で発行される処理要求は、 立ち上げに関するもので、 メモリ 管理テーブル 2 3 0を使用するアクセス要求ではない) されることが検出される と、 ステップ 4 6に進んで、 パーソナルコンピュータ 2 aに対してビジーを通知
し、 続くステップ 4 7で、 メモリ管理テーブル 2 3 0が作成中であるのか否かを 判断して、 作成中であることを判断するときには、 ステップ 4 8に進んで、 メモ リ管理テーブル 2 3 0の作成を一時停止する。
続いて、 ステップ 4 9で、 パーソナルコンピュータ 2 aの発行したコマンドや 割り込みに対する処理を行い、 その処理を終了すると、 镜くステップ 5 0で、— パーソナルコンピュータ 2 aに対してビジー解除を通知し、 続くステップ 5 1で、 メモリ管理テーブル 2 3 0が作成中であるのか否かを判断して、 作成中でないこ とを判断するときには、 直ちにステップ 4 5に戻り、 作成中であることを判断す るときには、 ステップ 5 2に進んで、 メモリ管理テーブル 2 3 0の作成を再開し てから、 ステップ 4 5に戻っていく。
このようにして、 図 1 4の処理フローでは、 初期設定を終了すると、 メモリ管 理テーブル 2 3 0の作成に入らずに、 パーソナルコンピュータ 2 aに対して直ち にビジー解除を通知して、 その後、 パーソナルコンピュータ 2 a力、 ;処理要求を発 行してこない間、 メモリ管理テーブル 2 3 0を作成していくように処理するので ある。
図 1 6及び図 1 7に、 メモリ管理テーブル 2 3 0の作成処理の処理フローの他 の実施例を図示する。
この処理フローでは、 図 1 8に示すように、 初期設定を終了すると、 メモリ管 理テーブル 2 3 0を一部作成した後、 パーソナルコンピュータ 2 aに対してビ ジ一解除を通知し、 それに続けて、 メモリ管理テーブル 2 3 0の作成を再開して、 パーソナルコンピュータ 2 aから立ち上げに必要となる処理要求が発行されると、 その作成処理を一時停止し、 その処理要求に対する処理を行つてパーソナルコン ピュータ 2 aに対してビジー解除を通知した後、 メモリ管理テーブル 2 3 0が完 成されていないときには、 パーソナルコンピュータ 2 aから次の処理要求が発行 されるまでの間、 メモリ管理テーブル 2 3 0の作成を 行していくことで、 メモ リ管理テーブル 2 3 0を作成するという構成を採っている。
すなわち、 C P U 2 1は、 メモリカード 1 aに電源が投入されることで立ち上 げられると、 R O M 2 2に格納されるプログラムに従って、 図 1 6及び図 1 7の 処理フローに示すように、 先ず最初に、 ステップ 6 1でパーソナルコンピュータ
2 aに対してビジーを通知し、 続くステップ 6 2で、 内部の各レジスタに初期値 を設定することで、 初期化処理を行い、 その初期化処理を終了すると、 読いて、 ステップ S 3で、 メモリ管理テーブル 2 3 0の作成を開始し、 くステップ S 4 でその作成を一時停止することで、 メモリ管理テーブル 2 3 0を "^作成する。 続いて、 ステップ 6 5で、 パーソナルコンピュータ 2 aに対してビジー解 Ifを 通知し、 続くステップ 6 6で、 メモリ管理テーブル 2 3 0の作成を再開して、 続 くステップ 6 7で、 パーソナルコンピュータ 2 aからコマンドゃ割り込みが発行 されることか検出されるまでの間、 その作成処理を続けていく。
続いて、 ステップ 6 7で、 パーソナルコンピュータ 2 aからコマンドや割り込 みが発行 (この時点で発行される処理要求は、 立ち上げに関するもので、 メモリ 管理テーブル 2 3 0を使用するアクセス要求ではない) されることが検出される と、 ステップ 6 8に進んで、 パーソナルコンピュータ 2 aに対してビジーを通知 し、 続くステップ 6 9で、 メモリ管理テーブル 2 3 0が作成中であるのか否かを 判断して、 作成中であることを判断するときには、 ステップ 7 0に進んで、 メモ リ管理テーブル 2 3 0の作成を一時停止する。
続いて、 ステップ 7 1で、 パーソナルコンピュータ 2 aの発行したコマンドや 割り込みに対する処理を行い、 その処理を終了すると、 続くステップ 7 2 (図 1 7の処理フロー) で、 パーソナルコンピュータ 2 aに対してビジ一解除を通知し、 続くステップ 7 3で、 メモリ管理テーブル 2 3 0が作成中であるのか否かを判断 して、 作成中でないことを判断するときには、 直ちにステップ 6 7に戻り、 作成 中であることを判断するときには、 ステップ 7 4に進んで、 メモリ管理テーブル 2 3 0の作成を再開してから、 ステップ 6 7に戻っていく。
このようにして、 図 1 6及び図 1 7の処理フローでは、 初期設定を終了すると、 メモリ管理テーブル 2 3 0の一部分を作成した後、 パーソナルコンピュータ 2 a に対してビジー解除を通知して、 その後、 パーソナルコンピュータ 2 aが処理要 求を発行してこない間、 メモリ管理テーブル 2 3 0の作成を再開してメモリ管理 テーブル 2 3 0を作成していくように処理するのである。
このメモリ管理テーブル 2 3 0の一部分の作成処理は、 図 1 9の処理フローに 示すように、 テーブルの作成時にアクセスするフラッシュメモリ 2 0のブロック
数に制限を加えることで実現したり、 図 2 0の処理フローに示すように、 テープ ルの作成時にアクセスするフラッシュメモリ 2 0へのアクセス時間に制限を加え ることで実現することになる。
図 1 9では、 ステップ 8 1で変数 iを 0にリセットし、 ステップ 8 2で変数 i の指すフラッシュメモリ 2 0のブロックからデータを読み出して、 メモリ管 テーブル 2 3 0を作成する。 次にステップ 8 3で変数 iが所定値 nと同一か否か を判断し、 同一でないと判断するときにはステップ 8 4で変数 iを 1だけ増加さ せてステップ 8 2に進む。 一方、 同一であると判断するときにはステップ 8 5に 進んでメモリ管理テーブル 2 3 0の作成を一時停止し、 ステップ 8 6でパ一ソナ ルコンピュータ 2 aに対してビジー解除を通知する。
図 2 0では、 図 1 9の処理に加えてステップ 9 1でタイマ時間を 0にリセット し、 ステップ 8 3に代わるステップ 9 2においてタイマ時間が所定値 Tを超える か否かを判断し、 超えたと判断するときにステップ 8 5に進む。
図 1 6及び図 1 7の処理フローでは、 図 1 8に示すように、 初期設定を終了す ると、 メモリ管理テーブル 2 3 0の一部分を作成し、 それに続けて、 パーソナル コンピュータ 2 aに対してビジー解除を通知した後、 パーソナルコンピュータ 2 aが処理要求を発行してこない間、 メモリ管理テーブル 2 3 0の作成を再開して いくとう構成を採ったが、 図 2 1に示すように、 パーソナルコンピュータ 2 aが 論理ア ドレスを指定してアクセス要求 (メモリ管理テーブル 2 3 0を参照する必 要のある処理要求) を発行するときに、 図 1 0及び図 1 1の処理フローで説明し たように、 それと同期をとつて、 メモリ管理テーブル 2 3 0の作成を再開してい くという構成を採ることも可能である。
このとき作成するメモリ管理テーブル 2 3 0の一部分は、 パーソナルコンビ ユー夕 2 aが最初に発行しているアクセス要求で指定される論理ァドレス (通常、 小さな論理アドレス) に対応付けられる部分を作成していくことが好ましい。 そ のようにすれば、 パーソナルコンピュータ 2 aが最初に発行してくるアクセス要 求に対して、 メモリ管理テーブル 2 3 0が用意されていることになるからである。 図 2 2ないし図 2 5に、 この構成を採るときに実行する処理フローの一実施例 図不す。。
この図 2 2に示す処理フローに従うときには、 C P U 2 Iは、 まず最初に、 ス テツブ 1 0 1で、 アクセス要求で指定された論理アドレスの指すメモリ管理テー ブル 2 3 0のエントリーに、 データが登録されているのか否かを判断して、 登録 されていることを判断するときには、 図 1 0及び図 1 1の処理フローでも説明し たように、 メモリ管理テーブル 2 3 0の作成処理を行うことなく、 直ちに、 テツプ 1 0 7に進んで、 発行されたコマンドに対する処理を実行する。
図 3に示すメモリ管理テーブル 2 3 0を具体例にして説明するならば、 例えば、 論理ァドレス 8が発行されるときには、 チップ番号 0及び行 2の指すメモリ管理 テーブル 2 3 0のェントリーに、 データが登録されているのか否かを判断して、 登録されていることを判断するときには、 直ちに、 ステップ 1 0 7に進んで、 発 行されたコマンドに対する処理を実行するのである。
—方、 ステップ 1 0 1で、 データが登録されていないことを判断するときには、 ステップ 1 0 2に進んで、 発行された論理アドレスの割り付けられるフラッシュ メモリ 2 0を特定する。 図 3に示すメモリ管理テーブル 2 3 0を具体例にして説 明するならば、 例えば、 論理アドレス 8が発行されるときには、 チップ番号 0の フラッシュメモリ 2 0を特定するのである。
読いて、 ステップ 1 0 3で、 変数 iに " 0 " をセッ卜し、 続くステップ 1 0 4 で、 ステップ 2で特定したフラッシュメモリ 2 0の持つ変数 iの指すプロック (例えば、 先頭ブロックからの順番に従って、 ブロックと変数 iの値との対応関 係がとられる) から、 データを読み出すことで、 ブロック番号とそのデータの持 つ論理アドレスとの対応関係を抽出して、 メモリ管理テーブル 2 3 0を作成する。 続いて、 ステップ 1 0 5で、 ステップ 1 0 2で特定したフラッシュメモリ 2 0 の持つ全プロックのデータを読み出したのか否かを判断して、 読み出していない ことを判断するときには、 ステップ 1 0 6に進んで、 変数 iの値を 1つインクリ メントしてから、 ステップ 1 0 4に戻っていく。 そして、 ステップ 1 0 5で、 全 ブロックのデータを読み出したことを判断するときには、 ステップ 1 0 7に進ん で、 発行されたコマンドに対する処理を実行する。
このようにして、 図 2 2の処理フローでは、 アクセス要求で指定された論理ァ ドレスの指すメモリ管理テーブル 2 3 0のエントリ一に、 データが登録されてい
ないことを判断するときには、 その論理ァドレスの割り付けられるフラッシュメ モリ 2 0の持つ全ブロックのデータを読み出して、 それを用いてメモリ管理テー ブル 2 3 0を作成するのである。
この図 2 2の処理フローに従うと、 メモリ管理テーブル 2 3 0の作成のために 5 —度アクセスされたフラッシュメモリ 2 3 0については、 メモリ管理テーブル" 2 3 0の作成のために再度アクセスされることがないという利点が得られる力^ 発 行された論理アドレスが検索されても、 フラッシュメモリ 2 0の持つ全ブロック の処理が終了するまでの間は、 発行されたコマンドに対する処理に入れないこと ίこな 。
1 0 そこで、 発行されたコマンドに対する処理の応答を優先する場合には、 図 2 2 の処理フローに代えて、 図 2 3の処理フローを実行することで、 発行された論理 ァドレスが検索された時点で、 メモリ管理テーブル 2 3 0の作成処理を中断して、 直ちに、 発行されたコマンドに対する処理に入る構成を採ることになる。
この図 2 3の処理フローでは、 図 2 2の処理フローのステップ 1 0 5に相当す るステップ 1 1 5で、 発行された論理アドレスを持つブロックを読み出したのか 否かを判断して、 読み出したことを判断するときには、 直ちに、 ステップ 1 0 7 に進んで、 発行されたコマンドに対する処理を実行していくことで、 発行された 論理ァドレスが検索された時点で、 メモリ管理テーブル 2 3 0の作成処理を中断 して、 直ちに、 コマンドに対する処理に入ることを実現している。
0 図 2 3の処理フローでは、 発行された論理アドレスが検索された時点で、 直ち に、 メモリ管理テーブル 2 3 0の作成処理を中断していくという構成を採った力 \ その後もある程度、 メモリ管理テーブル 2 3 0の作成処理を続行していくという 構成を採ることも可能である。
図 2 4及び図 2 5に、 この構成を実現するための処理フローの一実施例を図示 5する。
図 2 4の処理フローでは、 図 2 3の処理フローのステップ 1 0 3に相当するス テツプ 1 2 3で、 変数 jに " 0 " をセットする構成を採って、 図 2 3の処理フ ローのステップ 1 1 5に相当するステップ 1 2 5で、 発行された論理アドレスを 持つブロックを読み出したことを判断すると、 ステップ 1 2 7に進んで、 変数
jの値を 1つインクリメン卜する。 そして、 読くステップ 1 2 8で、 変数 iの指 すメモリ管理テーブル 2 3 0を作成した後、 続くステップ 1 2 9で、 変数 jの値 が規定値に到達したのか否かを判断して、 到達してし、ないことを判断するときに はステップ 1 2 7に戻り、 到達したことを判断するときには、 ステップ 1 3 0に 進んで、 発行されたコマンドに対する処理に入ることで、 発行された論理アト ""レ スが検索された時点から、 ある程度、 メモリ管理テーブル 2 3 0の作成処理を続 行していくことを実現している。
また、 図 2 5の処理フローでは、 図 2 3の処理フローのステップ 1 1 5に相当 するステップ 1 3 5で、 発行された論理アドレスを持つブロックを読み出したこ とを判断すると、 ステップ 1 3 7に進んで、 タイマを起動し、 続くステップ i 3 8で、 変数 iの値を 1つインクリメントする。 そして、 続くステップ 1 3 9で、 変数 iの指すメモリ管理テーブル 2 3 0を作成した後、 続くステップ 1 4 0で、 タイマが規定時間をタイムオーバ一したのか否かを判断して、 タイムオーバ一し ていないことを判断するときにはステップ 1 3 8に戻り、 タイムオーバーしたこ とを判断するときには、 ステップ 1 4 1に進んで、 発行されたコマンドに対する 処理に入ることで、 発行された論理アドレスが検索された時点から、 ある程度、 メモリ管理テーブル 2 3 0の作成処理を続行していくことを実現している。 図 2 2ないし図 2 5の処理フローについては、 図 2 1に示したアクセス要求の 発行時点で、 メモリ管理テーブル 2 3 0の未作成部分の作成処理に入ることで説 明した。 すなわち、 初期設定を終了した後、 メモリ管理テーブル 2 3 0の一部分 を作成して、 パーソナルコンピュータ 2 aにビジー解除を通知した後、 アクセス 要求が発行されるときに、 図 2 2ないし図 2 5の処理フローを実行することで、 メモリ管理テーブル 2 3 0を作成していくことで説明したが、 図 2 6に示すァク セス要求の発行時点で実行する搆成を探ることも可能である。
すなわち、 初期設定を終了した後、 直ちに、 パーソナルコンピュータ 2 aにビ ジー解除を通知した後、 アクセス要求が発行されるときに、 メモリ管理テーブル 2 3 0を作成していくようにしてもよいのである。
図示実施例に従って本発明を説明したが、 本発明はこれに限定されるものでは ない。 例えば、 実施例では、 フラッシュメモリ 2 0を搭載することを具体例にし
て本発明を説明したが、 本発明はフラッシュメモリ 2 Qにその適用が限られるも のではなく、 その他の不揮発性メモリゃバッテリバックァップされた揮発性メ乇 リに対しても、 そのまま適用できる。
以上説明したように、 本発明のメモリ装置では、 論理ァドレスと物理ァドレス との間の変換処理に用いるメモリ管理テーブルを作成するときにあって、 従^ ¾ 術のように、 初期設定を行った後、 メモリ管理テーブルを完成させてからホスト 装置にビジー解除を通知するという構成を採るのではなくて、 メモリ管理テープ ルを作成せずに、 直ちに、 ホスト装置にビジー解除を通知したり、 メモリ管理 テーブルの一部分だけを作成して、 ホスト装置にビジー解除を通知し、 その後、 ホスト装置が処理要求を発行するまでの間、 メモリ管理テーブルの未作成部分を 作成したり、 ホスト装置が処理要求が発行するときに、 その処理要求で措定され る論理ァドレスの指すメモリ管理テーブルの未作成部分を作成することで、 メモ リ管理テーブルを作成するという構成を採ることから、 ホスト装置は、 メモリ装 置が起動された後、 迅速に処理に入れるようになる。
そして、 ホスト装置は、 迅速にメモリ装置が正常であることを認識できること で、 メモリ装置にエラーが発生しているという誤認識を起こすことなく、 処理に 入れるようになる。
Claims
1 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを管 理対象として、 ホストの発行する論理ァドレスの指すデータの格納先となるメモ リ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理— テーブル作成方法であって、
ホストに対してビジー解除を通知した後、 メモリ管理テーブルの未作成部分の 作成に入って、 ホストから処理要求が発行されるまでの間、 上記メモリ域を単位 にして上記メモリにアクセスすることで、 上記メモリ域に格納されるデータの持 つ論理アドレスを取得して、 その取得した論理アドレスと、 アクセスした上記メ モリ域の識別子情報とからメモリ管理テーブルの未作成郎分を作成していくよう に処理するメモリ管理テーブル作成方法。
2 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを管 理対象として、 ホストの発行する論理ァドレスの指すデータの格納先となるメモ リ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理 テーブル作成方法であって、
ホストから処理要求が発行されるときに、 メモリ管理テーブルの未作成部分の 作成に入って、 上記メモリ域を単位にして、 その処理要求で措定される論理アド レスの割り付けられる上記メモリにアクセスすることで、 上記メモリ域に格納さ れるデータの持つ論理アドレスを取得して、 その取得した論理アドレスと、 ァク セスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作 成していくように処理するメモリ管理テーブル作 ¾Γ法。
3 . 請求項 2記載のメモリ管理テーブル作成方 において、
処理要求で指定される論理アドレスの割り付けられるメモリの持つ全メモリ域 へのアクセスを終了するときに、 メモリ管理テーブルの未作成部分の作成を中断 していくように処理するメモリ管理テーブル作成方法。
4 . 請求項 2記載のメモリ管理テ—ブル作成方法にぉレ、て、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出すると きに、 メモリ管理テーブルの未作成部分の作成を中断していくように処理するメ
モリ管理テ一ブル作成方法。
5 . 請求項 2記載のメモリ管理テーブル作成方 Sにおいて、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、 アクセスするメモリ域の数に制限を課することで、 メモリ管理テーブルの未作成 部分の作成を中断していくように処理するメモリ管理テーブル作成方法。 ―
6 . 請求項 2記載のメモリ管理テーブル作 法にぉレ、て、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、 ァクセスする時間に制限を課することで、 メモリ管理テーブルの未作成部分の作 成を中断してレ、くように処理するメモリ管理テーブル作成方法。
7 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを管 理対象として、 ホストの発行する論理ァドレスの指すデータの格納先となるメモ リ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理 テーブル作成方法であって、
メモリの起動時に、 初期設定を終了すると、 メモリ管理テーブルを作成せずに、 直ちに、 ホストに対してビジ一伏態の解除を通知し、
それに読いて、 メモリ管理テーブルの作成に入って、 ホストから処理要求が発 行されるまでの間、 上記メモリ域を単位にして上記メモリにアクセスすることで、 上記メモリ域に格納されるデータの持つ論理ァドレスを取得して、 その取得した 論理ァドレスと、 アクセスした上記メモリ域の識別子情報とからメモリ管理テ一 ブルを作成していくように処理するメモリ管理テーブル作成方法。
8 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを管 理対象として、 ホストの発行する論理ァドレスの指すデータの格納先となるメモ リ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理 テーブル作成方法であって、
メモリの起動時に、 初期設定を終了すると、 メモリ管理テーブルの一部分の作 成に入って、 上記メモリ域を単位にして上記メモリにアクセスすることで、 上記 メモリ域に格納されるデータの持つ論理ァドレスを取得して、 その取得した論理 アドレスと、 ァクセスした上記メモリ域の識別子情報とからメモリ管理テーブル の一部分を作成し、
それに読いて、 ホストに対してビジ一状態の解除を通知していくように処理す るメモリ管理テーブル作成方法。
9 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを管 理対象として、 ホス卜の発行する論理ァドレスの指すデータの格納先となるメモ リ域の識別子情報を管理するメモリ管理テ一ブルの作成処理を司るメモリ管 テーブル作成方法であって、
メモリの起動時に、 初期設定を終了すると、 メモリ管理テーブルの一部分の作 成に入って、 上記メモリ域を単位にして上記メモリにアクセスすることで、 上記 メモリ域に格納されるデータの持つ論理ァドレスを取得して、 その取得した論理 アドレスと、 アクセスした上記メモリ域の識別子情報とからメモリ管理テーブル の一部分を作成し、
それに続し、て、 ホストに対してビジ一状態の解除を通知し、
それに続けて、 メモリ管理テ一ブルの未作成部分の作成に入って、 ホストから 処理要求が発行されるまでの間、 上記メモリ域を単位にして上記メモリにァクセ スすることで、 上記メモリ域に格納されるデータの持つ論理アドレスを取得して、 その取得した論理ァドレスと、 アクセスした上記メモリ域の識別子情報とからメ モリ管理テーブルを作成してし、くように処理するメモリ管理テーブル作成方法。
1 0 . 請求項 8記載のメモリ管理テーブル作 β ^法において、
メモリの起動時に、 アクセスするメモリ域の数に制限を課することで、 作成す るメモリ管理テーブル部分を決定するメモリ管理テーブル作成方法。
1 1 . 請求項 8記載のメモリ管理テーブル作成方法において、
メモリの起動時に、 アクセスする時間に制限を課することで、 作成するメモリ 管理テーブル部分を決定するメモリ管理テーブル作成方法。
1 2 . 電源遮断時にもデータを保持する機能を持つ 1つ又は複数のメモリを 管理対象として、 ホストの発行する論理アドレスの指すデータの格納先となるメ モリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理 テーブル作成方法であって、
メモリの起動時に、 初期設定を終了すると、 メモリ管理テーブルを作成せずに、 直ちに、 ホストに対してビジー伏態の解除を通知し、
その後、 ホストから処理要求が発行されるときに、 メモリ管理テーブルの未作 成部分の作成に入って、 上記メモリ域を単位にして、 その処理要求で指定される 論理ァドレスの割り付けられる上記メモリにアクセスすることで、 上記メモリ域 に格納されるデータの持つ論理ァドレスを取得して、 その取得した論理ァドレス と、 アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成 部分を作成していくように処理するメモリ管理テーブル作成方法。
1 3 . 電源遮断時にもデータを保持する機能を持つ iつ又は複数のメモリを 管理対象として、 ホストの発行する論理ァドレスの指すデータの格納先となるメ モリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理 テーブル作成方法であって、
メモリの起動時に、 初期設定を終了すると、 メモリ管理テ一ブルの一部分の作 成に入って、 上記メモリ域を単位にして上記メモリにアクセスすることで、 上記 メモリ域に格納されるデータの持つ論理ァドレスを取得して、 その取得した論理 アドレスと、 アクセスした上記メモリ域の識別子情報とからメモリ管理テーブル の一部分を作成し、
それに続いて、 ホストに対してビジ一伏態の解除を通知し、
その後、 ホストから処理要求が発行されるときに、 メモリ管理テーブルの未作 成部分の作成に入って、 上記メモリ域を単位にして、 その処理要求で措定される 論理ァドレスの割り付けられる上記メモリにアクセスすることで、 上記メモリ域 に格納されるデータの持つ論理アドレスを取得して、 その取得した論理アドレス と、 アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成 部分を作成してレ、くように処理するメモリ管理テーブル作成方法。
1 4 . 請求項 1 3記載のメモリ管理テーブル作成方法において、
メモリの起動時に、 アクセスするメモリ域の数に制限を課することで、 作成す るメモリ管理テーブル部分を決定するメモリ管理テーブル作成方法。
1 5 . 請求項 1 3記載のメモリ管理テーブル作成方法において、
メモリの起動時に、 アクセスする時間に制限を課することで、 作成するメモリ 管理テーブル部分を決定するメモリ管理テーブル作成方法。
1 6 . 請求項 1 2に記載されるいずれかのメモリ管理テーブル作成方法にお
いて、
処理要求で指定される論理アドレスの割り付けられるメモリの持つ全メモリ域 へのアクセスを終了するときに、 メモリ管理テーブルの未作成部分の作成を中断 していくように処理するメモリ管理テーブル作成方法。
1 7 . 請求項 1 2に記載されるいずれかのメモリ管理テーブル作成方法に いて、
処理要求で指定される論理ァドレスを持つメモリ域へのアクセスを検出すると きに、 メモリ管理テーブルの未作成部分の作成を中断していくように処理するメ モリ管理テ一ブル作成方法。
1 8 . 請求項 1 2に記載されるいずれかのメモリ管理テーブル作成方法にお いて、
処理要求で指定される論理ァドレスを持つメモリ域へのァクセスを検出した後、 アクセスするメモリ域の数に制限を課することで、 メ乇リ管理テーブルの未作成 部分の作成を中断していくように処理するメモリ管理テーブル作成方法。
1 9 . 請求項 1 2に記載されるいずれかのメモリ管理テーブル作成方法にお いて、
処理要求で指定される論理ァドレスを持つメモリ域へのァクセスを検出した後、 ァクセスする時間に制限を課することで、 メモリ管理テーブルの未作成部分の作 成を中断していくように処理するメモリ管理テーブル作成方法。
2 0 . C P Uと、 電源遮断時にもデータを保持する機能を持つ 1つ又は複数 のメモリと、 C P Uの指示に応答して該メモリにコマンドを発行することで該メ モリを制御するコントローラとを備えるメモリ装置であって、
ホス卜から処理要求が発行されたのか否かを検出する検出手段と、
ホス卜に対してビジー解除を通知した後、 ホストの発行する論理ァドレスの指 すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの 未作成部分の作成に入って、 上記検出手段がホストからの処理要求を検出するま での間、 該メモリ域を単位にして上記メモリにアクセスすることで、 該メモリ域 に格納されるデータの持つ論理了ドレスを取得して、 その取得した論理ァドレス と、 アクセスした該メモリ域の識別子情報とからメ乇リ管理テーブルの未作成部
分を作成してし、く作成手段とを備えるメモリ装置。
2 1 . C P Uと、 電源遮断時にもデータを保持する機能を持つ 1つ又は複数 のメモリと、 C P Uの指示に応答して該メモリにコマンドを発行することで該メ モリを制御するコントローラとを備えるメモリ装置であって、
ホス卜から処理要求が発行されたのか否かを検出する検出手段と、 ― 上記検出手段がホス卜からの処理要求を検出するときに、 ホス卜の発行する論 理ァドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ 管理テーブルの未作成部分の作成に入って、 該メモリ域を単位にして、 その処理 要求で措定される論理アドレスの割り付けられる上記メモリにアクセスすること で、 該メモリ域に格納されるデータの持つ論理アドレスを取得して、 その取得し た論理ァドレスと、 アクセスした該メモリ域の識別子情報とからメモリ管理テ一 ブルの未作成部分を作成していく作成手段とを備えるメモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/801,671 US6625712B2 (en) | 1998-09-11 | 2001-03-09 | Memory management table producing method and memory device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25821698A JP3544476B2 (ja) | 1998-09-11 | 1998-09-11 | メモリ管理テーブル作成方法 |
JP10/258216 | 1998-09-11 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/801,671 Continuation US6625712B2 (en) | 1998-09-11 | 2001-03-09 | Memory management table producing method and memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000016199A1 true WO2000016199A1 (fr) | 2000-03-23 |
Family
ID=17317137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP1999/002471 WO2000016199A1 (fr) | 1998-09-11 | 1999-05-13 | Procede permettant de realiser une table de gestion de memoire et dispositif de memoire |
Country Status (4)
Country | Link |
---|---|
US (1) | US6625712B2 (ja) |
JP (1) | JP3544476B2 (ja) |
KR (1) | KR100590150B1 (ja) |
WO (1) | WO2000016199A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6565443B1 (en) | 1999-09-14 | 2003-05-20 | Innovative Gaming Corporation | System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device |
WO2002069127A1 (fr) * | 2001-02-26 | 2002-09-06 | Tokyo Electron Device Limited | Procede de commande d'un support de stockage, commande du support de stockage, et adaptateur de support de stockage |
JP2003067244A (ja) * | 2001-08-24 | 2003-03-07 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置及びその制御方法 |
KR100439507B1 (ko) * | 2002-03-18 | 2004-07-09 | 삼성전기주식회사 | 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 |
JP2004318940A (ja) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | 記憶装置 |
CN100524257C (zh) * | 2003-10-27 | 2009-08-05 | 松下电器产业株式会社 | 记录媒体、数据处理装置以及数据处理方法 |
JP4521245B2 (ja) * | 2004-10-29 | 2010-08-11 | 富士フイルム株式会社 | 記憶デバイス制御装置及びプログラム |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
JP2007034537A (ja) * | 2005-07-25 | 2007-02-08 | Sony Corp | 複合型記憶装置、データ書込方法及びプログラム |
WO2008016081A1 (fr) * | 2006-08-04 | 2008-02-07 | Panasonic Corporation | Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile |
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US8327040B2 (en) * | 2009-01-26 | 2012-12-04 | Micron Technology, Inc. | Host controller |
TWI506422B (zh) * | 2009-09-23 | 2015-11-01 | Silicon Motion Inc | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 |
JP5403160B2 (ja) * | 2010-06-23 | 2014-01-29 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
US9253102B2 (en) * | 2013-11-13 | 2016-02-02 | Verizon Patent And Licensing Inc. | Time weighted queuing scheduler for machine-to-machine communications |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
JPH11110283A (ja) * | 1997-08-08 | 1999-04-23 | Toshiba Corp | 不揮発性半導体メモリシステムの制御方法 |
Family Cites Families (10)
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 |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
JPH0546328A (ja) * | 1991-08-13 | 1993-02-26 | Fujitsu Ltd | 半導体記憶装置のステージング方法 |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5822784A (en) * | 1993-03-19 | 1998-10-13 | Intel Corporation | Mechanism supporting execute in place read only memory applications located on removable computer cards |
JP3371044B2 (ja) * | 1994-12-28 | 2003-01-27 | 株式会社日立製作所 | ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 |
JP3706167B2 (ja) * | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
US5666560A (en) * | 1995-08-03 | 1997-09-09 | International Business Machines Corporation | Storage method and hierarchical padding structure for direct access storage device (DASD) data compression |
JP3604466B2 (ja) * | 1995-09-13 | 2004-12-22 | 株式会社ルネサステクノロジ | フラッシュディスクカード |
US6119226A (en) * | 1998-01-06 | 2000-09-12 | Macronix International Co., Ltd. | Memory supporting multiple address protocols |
-
1998
- 1998-09-11 JP JP25821698A patent/JP3544476B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-13 WO PCT/JP1999/002471 patent/WO2000016199A1/ja active IP Right Grant
- 1999-05-13 KR KR1020017003078A patent/KR100590150B1/ko not_active IP Right Cessation
-
2001
- 2001-03-09 US US09/801,671 patent/US6625712B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
JPH11110283A (ja) * | 1997-08-08 | 1999-04-23 | Toshiba Corp | 不揮発性半導体メモリシステムの制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20010014933A1 (en) | 2001-08-16 |
JP2000090004A (ja) | 2000-03-31 |
JP3544476B2 (ja) | 2004-07-21 |
KR20010086400A (ko) | 2001-09-10 |
KR100590150B1 (ko) | 2006-06-15 |
US6625712B2 (en) | 2003-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2000016199A1 (fr) | Procede permettant de realiser une table de gestion de memoire et dispositif de memoire | |
JP4206688B2 (ja) | データ処理装置及びデータ処理方法 | |
KR100991718B1 (ko) | 플래시 디바이스에서 부분적으로 소거된 유닛을 검출하는방법 | |
JPH117505A (ja) | カード型記憶媒体 | |
JP2549034B2 (ja) | 記憶装置 | |
JPH08147202A (ja) | 書換え可能なromファイル装置 | |
WO2006107095A1 (ja) | 計算機システム、メモリ管理方法、およびそのプログラム | |
JP4046877B2 (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
WO2004079495A2 (en) | Efficient flash memory device driver | |
JP6753257B2 (ja) | 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム | |
JP2008507770A (ja) | Usbフラッシュ書込性能を向上させる方法および装置 | |
JPH1040170A (ja) | ディスクキャッシュシステム | |
US20020059324A1 (en) | Computer system and a database access method thereof | |
US7263580B2 (en) | Cache flush based on checkpoint timer | |
JP4016396B2 (ja) | マルチセルシステム | |
JP2003280979A (ja) | 情報記憶装置 | |
JP2001051883A (ja) | 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置 | |
JP4594944B2 (ja) | メモリ制御装置 | |
JP2000030375A (ja) | データ処理システム、アクセス装置及び記録媒体 | |
JP2001084180A (ja) | ファイル管理装置 | |
JP3450071B2 (ja) | Pcカード | |
JP3313576B2 (ja) | メモリアクセス制御方法及び装置 | |
JPH06309527A (ja) | Icカード | |
JP6241373B2 (ja) | 記憶装置、フラッシュメモリ制御装置、及びプログラム | |
JP2002082833A (ja) | 不揮発性キャッシュメモリを用いた高速データ書き込みシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): KR US |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1020017003078 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 1020017003078 Country of ref document: KR |
|
WWG | Wipo information: grant in national office |
Ref document number: 1020017003078 Country of ref document: KR |