US20080077751A1 - Control device for accelerating memory to execute iterant command - Google Patents

Control device for accelerating memory to execute iterant command Download PDF

Info

Publication number
US20080077751A1
US20080077751A1 US11/610,509 US61050906A US2008077751A1 US 20080077751 A1 US20080077751 A1 US 20080077751A1 US 61050906 A US61050906 A US 61050906A US 2008077751 A1 US2008077751 A1 US 2008077751A1
Authority
US
United States
Prior art keywords
state
memory
state machine
execution
searching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US11/610,509
Other versions
US7765367B2 (en
Inventor
Ming-Hsun Sung
Yu-Lin Hsieh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ITE Tech Inc
Original Assignee
ITE Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ITE Tech Inc filed Critical ITE Tech Inc
Assigned to ITE TECH. INC. reassignment ITE TECH. INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HSIEH, YU-LIN, SUNG, MING-HSUN
Publication of US20080077751A1 publication Critical patent/US20080077751A1/en
Application granted granted Critical
Publication of US7765367B2 publication Critical patent/US7765367B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • This invention is related to a semiconductor memory, especially a control device that can accelerate the memory to execute iterant commands.
  • the present invention provides a control device of memory that accelerates memory to execute iterant commands.
  • the control device can ease the work load on the micro-controller unit and increase the efficacy of memory when it executes commands.
  • the present invention provides a control device of memory, which accelerates memory to execute iterant commands.
  • This control device includes a micro-controller unit, a controller, a block information table and a state machine.
  • the micro-controller unit is used to issue a command to operate the memory, which contains several blocks.
  • the controller is coupled between the memory and the micro-controller. When the controller determines the command needs not be executed repeatedly, the micro-controller would issue the command through the control device. While the command is determined necessary for repetitive execution, the state machine would repeatedly carry out this command.
  • the block information table is used to record the state of every block. The state machine obtains the information on the state of every block from the block information table to analyze the state of a block so as to repeatedly execute the said command, and update the state information in the block information table.
  • the iterant command can be carried out without involving the micro-controller unit and a software, so as to improve the efficacy of the memory and lower its power consumption.
  • FIG. 1 is a block diagram of a control device of a memory according to one embodiment of the present invention.
  • FIG. 2 is a structure diagram of a block information table according to one embodiment of the invention.
  • FIG. 3 is a state diagram of a state machine suitable for executing a command to search for several empty blocks according to one embodiment of the invention.
  • FIG. 4 is a state diagram of a state machine according to one embodiment of the invention.
  • FIG. 5 is a state diagram of a state machine during its execution of reading according to one preferred embodiment of the invention.
  • FIG. 6 is a state diagram of a state machine during its execution of writing according to one preferred embodiment of the invention.
  • FIG. 7 is a state diagram of a state machine during its execution of erasing according to one preferred embodiment of the invention.
  • FIG. 1 is a block diagram of the control device of the memory according to one embodiment of the invention.
  • a flash memory among non-volatile memories is used in this embodiment as an example, and the flash memory contains several blocks.
  • a control device 100 is used for accelerating the flash memory to execute iterant commands, which includes a Micro-controller Unit 110 , a controller 120 , a state machine 130 , a block information table 140 and a queuer 150 .
  • the micro-controller unit 110 issues a command to operate the memory.
  • the said command can be a reading, writing, erasing command or a command to search for N empty blocks.
  • N is a positive integer.
  • the controller is coupled between the flash memory and the micro-controller unit 110 . When it determines the command needs not be executed repeatedly, the micro-controller unit 110 would issue the command through the controller 120 to carry out the said command. On the contrary, when the command is determined necessary for repetitive execution, the state machine 130 would repeatedly carry out this command.
  • the state machine 130 when the state machine 130 is carrying out the command repeatedly, it also needs the block information table 140 and the queuer 150 .
  • the block information table 140 is used to record the states of every block in the flash memory, while the queuer 150 is used to queue the addresses of the flash memory needed when the state machine 130 repeatedly executes the command.
  • the state machine 130 obtains the states of each block in the flash memory through the block information table 140 , analyzes these states and repeatedly executes the command in proper execution, and then updates the corresponding states in the block information table 140 .
  • the state machine 130 updates the corresponding state in the block information table 140 as a basis for restarting next time.
  • FIG. 2 is an information structure diagram of the block information table according to one embodiment of the invention.
  • the block information table 140 of FIG. 2 includes several sub-blocks information corresponding to every block in the flash memory respectively.
  • the size of information of every block is 16 bits.
  • the first column shown in two bits is used to record the state of the memory block, like three different states—empty, used and erasable.
  • the second column is retained, not for ordinary use; it can be used to store the necessary information during expansion of other functions.
  • the third column shown in 12 bits is used for LP mapping, i.e. the mapping relation from a logical address to a physical address.
  • the information in every sub-block in the block information table 140 is built up according to the contents of the redundant area in the corresponding block inside the flash memory, and stored in a partitioned area in a RAM.
  • the state machine 130 When the state machine 130 starts, it performs the corresponding execution according to an analysis result of the block states provided by the block information table 140 to carry out the command repeatedly, and the contents in the block information table 140 are updated by a software.
  • the hardware will be based on the block state (the state values stored in the block state information table).
  • the state machine 130 can be used to replace the micro-controller unit 110 to execute the command repetitively to significantly reduce the load on the micro-controller unit 110 and improve the efficacy of the whole flash memory. While it is not necessary to carry out the command, the state machine 130 enters an idle state to reduce its power consumption.
  • FIG. 3 is the state diagram of a state machine according to an embodiment of this present invention; the device is suitable for executing the command to search for N empty blocks, wherein, N is a positive integer.
  • the state machine 130 shown in FIG. 1 includes an idle state A, a searching state B, a determining state D, an erasure state D, a verification state E and an ending state F.
  • the idle state A is the initial state of state machine 130 .
  • the searching state B searches for N empty blocks from the flash memory based on the block states in the flash memory recorded in Block Information Table 140 .
  • the determining state C is used to determine which blocks are empty or erasable.
  • the erasure state D is used to erase the contents in the blocks.
  • the verification state E is to verify whether or not the erasure of blocks is successfully completed.
  • the ending state F is used to stop executing the command repetitively.
  • the state machine 130 When the state machine 130 begins to receive signals, it means the command has to be executed repeatedly; hence, the state machine 130 enters the searching state B from the idle state A. Once the state machine 130 finds N empty blocks in the flash memory during the searching state B, it would enter the ending state F and stop repeatedly executing the command; oppositely, when the N empty blocks are not yet found, the state machine 130 would enter the determining state C.
  • the state machine 130 determines the present blocks are empty or erasable according to the information in the state column of the sub-blocks during the determining state C. If the block is empty, its address will be recorded in the queuer 150 , and the state machine 130 will return to the searching state B to continue searching for the next empty block. If the block is erasable, the state machine 130 enters the erasure state D to erase it so that an erasure command can be directly issued from the hardware; there is no need to issue from the software. In addition, the state machine 130 enters the ending state F from the determining state C to stop executing the command repetitively, when the queuer 150 does not have enough space to queue addresses, or the number of times to repeat a command exceeds a preset number M, i.e. searching in M blocks without finding N empty blocks, wherein M is a positive integer larger than N.
  • the state machine 130 When the contents in the blocks are erased, the state machine 130 enters the verification state E from the erasure State D to verify whether or not the erasure of blocks is successful. If so, the state machine 130 would return to the searching state B to look for the next empty block. If not, the state machine 130 would enter the ending state F to stop executing the command repeatedly. Lastly, the command of iterant execution is stopped during the ending state F, and the state is reported to the system. So in this embodiment, the state machine 130 can find the empty blocks in the flash memory that are still usable. If the number of usable empty blocks reaches the needed number, the state machine 130 would automatically stop in order to avoid wasting efficacy of the system and reduce power consumption. In addition, that no software is needed during the execution can also lower the load on the micro-controller unit 110 .
  • FIG. 4 is a state diagram of a state machine according to another embodiment of this present invention.
  • the device is suitable for iterant execution, such as erasure, writing-in, reading etc.
  • the state machine awaits a firmware to issue a command in the idle state A, and then enters the searching state B.
  • the searching state B When the condition of the searching is met, the state machine would enter the ending State F and report to the system.
  • the state machine would enter the determining state C.
  • the condition of the searching refers to that of ending this state machine. For example, if the state machine is set to erase 10 memory blocks, then the condition of the searching is 10 memory blocks.
  • the state machine During the searching State B, if the state of the memory conforms to the condition, the state machine would enter the execution state D. On the contrary, if the state of the memory does not conform to the condition, then the state machine would return to the searching state B. Taking erasure for an example, if the state of the memory is labeled as erasable, the state machine would execute erasing it. If it is labeled as inerasable, the state machine would return to the searching state B.
  • state machine When the execution of state D is completed, the state machine enters the verification state E. If the execution is carried out successfully, the state machine would return to the searching state B to continue carrying out the foregoing executions at the next address of the memory. Oppositely, if the execution fails, the state machine would return to the ending state F, and report to the system. Disclosed as follows is an example of a state machine during its executions of reading, writing-in and erasing.
  • FIG. 5 is a state diagram of a state machine during its execution of reading according to one preferred embodiment of the invention.
  • a wished execution is reading at a certain memory address in a certain memory block, first, marking the state corresponding to the targeted memory address as “to-be-read” through the firmware.
  • the state machine 130 When the state machine 130 is started, the state machine would enter the searching state B from the idle state A.
  • the state machine 130 would enter the determining state C. In the determining state C, the memory address and its state indicator are checked. Oppositely, when the designated memory blocks are all read, the state machine 130 would directly enter the ending state F.
  • the state machine 130 would return to the searching state B, or re-check the next memory address and its state indicator. To the contrary, if the memory address is within the designated memory block and labeled as “to-be-read”, the state machine 130 would return to a reading execution state D. At this moment, the controller 120 is controlled to issue a reading command to the flash memory and returns to the verification state E when the controller 120 finishes performing the execution.
  • the state machine 130 If the execution of reading the memory is successfully executed, the state machine 130 would return to the searching State B so as to continue repeating the above steps on the next memory address. Oppositely, if the execution of reading of the memory fails, the state machine would return to the ending state F, and report the state to the system. Therefore, in this embodiment, the state machine 130 can find the contents of a designated block within the flash memory and the system would automatically stop after the searching within the designated block is over. So that, the state machine 130 can share the load on the micro-controller unit 110 .
  • FIG. 6 is a state diagram of a state machine during its execution of writing according to one preferred embodiment of the invention. Referring FIGS. 1 and 6 . If the desired execution is writing in a certain block in the memory, first, designating the desired address of the memory through a firmware for writing. When the state machine 130 is started, it would enter the searching state B from the idle state A. When the physical memory blocks are not yet fully written, the state machine 130 would enter the determining state C to check the memory address and its state indicator. Oppositely, when the designated memory blocks are all written, the state machine 130 would directly enter the ending state F.
  • the state machine 130 While in the determining state C, if the memory address is not within the memory block to be written, or its state indicator labels “not-to-be-written”, the state machine 130 would return to the searching state B, or re-check the next memory address and its state indicator. Contrarily, if the memory address is within the designated memory block and labeled as “to-be-written”, the state machine 130 would return to a writing execution state D. At this moment, the system would issue a writing command to the flash memory through the controller 120 , and enter the verification state E after performance of the controller 120 .
  • the state machine 130 If the execution for writing in the memory is successful, the state machine 130 would return to the searching state B so as to continue repeating the above steps on the next memory address. Oppositely, if the execution for writing in the memory fails, the state machine 130 would return to the ending state F, and report the state to the system. Hence, in this embodiment, the state machine 130 can execute iterant writing on the designated blocks according to the state indicator.
  • FIG. 7 is a state diagram of a state machine during its execution of erasing according to one preferred embodiment of the invention.
  • the desired execution is iterant erasure
  • first labeling the state of the physical address of the to-be-erased memory as erasable in block information table 140 through a firmware.
  • the state machine 130 After the state machine 130 is started, it would enter the searching state B. If all the designated blocks are not yet fully erased, the state machine 130 would enter the determining the determining state C. Oppositely, when the designated memory blocks are all erased, the state machine 130 would directly enter the ending state F.
  • the state machine 130 would return to the searching state B to re-check the next memory address and its state indicator. Oppositely, if the address is within the designated block, and its state is labeled “erasable”, the state machine 130 would enter anthe erasure execution state D. At this moment, the controller 120 is controlled to issue an erasing command to the memory and returns to the verification state E when the controller 120 finishes performing the execution.
  • the state machine 130 would return to the state B and repeat the above steps on the next memory address. Oppositely, if the execution of erasure fails, the state machine 130 would return to the ending state F, and report it to the system.
  • the iterant command can be carried out without involving the micro-controller unit and software, so as to improve the efficacy of the memory and lower its power consumption.

Abstract

The present invention provides a control device of the memory, which accelerates the memory to execute iterant commands. This control device includes a micro-controller unit, a controller, a block information table and a state machine. Among them, the micro-controller unit is used to issue a command to operate the memory, which contains several blocks. The controller is coupled between the memory and the micro-controller unit. When it determines the command needs not be executed repeatedly, the micro-controller unit would issue the command through the control device. When the command is determined necessary for repetitive execution, the state machine would repeatedly carry out this command. The state machine performs an analysis based on the state of every block in the block information table and executes repetitively the command accordingly. It also updates the state information on the blocks in the table accordingly.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application claims the priority benefit of Taiwan application serial no. 95135520, filed on Sep. 26, 2006. All disclosure of the Taiwan application is incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • This invention is related to a semiconductor memory, especially a control device that can accelerate the memory to execute iterant commands.
  • 2. Description of Related Art
  • For normal semiconductor memories, the command to execute a certain task and its action are not complicated. Most control procedures issue similar commands to the different addresses of a memory, therefore, it is necessary to perform iterant actions in different addresses of the memory during a certain period of time. For example, erasing all the values in every address of all memories is to issue an erasing command in order to all the memory sections. Generally speaking, writing a firmware code and transmitting the command through the output port of a micro-controller Unit (MCU) can meet the requirement. However, during its action, the micro-controller unit cannot proceed with other tasks, which affects the overall efficacy.
  • SUMMARY OF THE INVENTION
  • The present invention provides a control device of memory that accelerates memory to execute iterant commands. The control device can ease the work load on the micro-controller unit and increase the efficacy of memory when it executes commands.
  • The present invention provides a control device of memory, which accelerates memory to execute iterant commands. This control device includes a micro-controller unit, a controller, a block information table and a state machine. Wherein, the micro-controller unit is used to issue a command to operate the memory, which contains several blocks. The controller is coupled between the memory and the micro-controller. When the controller determines the command needs not be executed repeatedly, the micro-controller would issue the command through the control device. While the command is determined necessary for repetitive execution, the state machine would repeatedly carry out this command. The block information table is used to record the state of every block. The state machine obtains the information on the state of every block from the block information table to analyze the state of a block so as to repeatedly execute the said command, and update the state information in the block information table.
  • By changing the device to issue a command from the micro-controller unit to the state machine when it is necessary to execute an iterant command in the memory, the iterant command can be carried out without involving the micro-controller unit and a software, so as to improve the efficacy of the memory and lower its power consumption.
  • In order to the make aforementioned and other objects, features and advantages of the present invention comprehensible, a preferred embodiment accompanied with figures are described in detail below.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a control device of a memory according to one embodiment of the present invention.
  • FIG. 2 is a structure diagram of a block information table according to one embodiment of the invention.
  • FIG. 3 is a state diagram of a state machine suitable for executing a command to search for several empty blocks according to one embodiment of the invention.
  • FIG. 4 is a state diagram of a state machine according to one embodiment of the invention.
  • FIG. 5 is a state diagram of a state machine during its execution of reading according to one preferred embodiment of the invention.
  • FIG. 6 is a state diagram of a state machine during its execution of writing according to one preferred embodiment of the invention.
  • FIG. 7 is a state diagram of a state machine during its execution of erasing according to one preferred embodiment of the invention.
  • DESCRIPTION OF EMBODIMENTS
  • FIG. 1 is a block diagram of the control device of the memory according to one embodiment of the invention. A flash memory among non-volatile memories is used in this embodiment as an example, and the flash memory contains several blocks. Referring FIG. 1, a control device 100 is used for accelerating the flash memory to execute iterant commands, which includes a Micro-controller Unit 110, a controller 120, a state machine 130, a block information table 140 and a queuer 150.
  • The micro-controller unit 110 issues a command to operate the memory. The said command can be a reading, writing, erasing command or a command to search for N empty blocks. N is a positive integer. The controller is coupled between the flash memory and the micro-controller unit 110. When it determines the command needs not be executed repeatedly, the micro-controller unit 110 would issue the command through the controller 120 to carry out the said command. On the contrary, when the command is determined necessary for repetitive execution, the state machine 130 would repeatedly carry out this command.
  • Besides, when the state machine 130 is carrying out the command repeatedly, it also needs the block information table 140 and the queuer 150. The block information table 140 is used to record the states of every block in the flash memory, while the queuer 150 is used to queue the addresses of the flash memory needed when the state machine 130 repeatedly executes the command. Hence, the state machine 130 obtains the states of each block in the flash memory through the block information table 140, analyzes these states and repeatedly executes the command in proper execution, and then updates the corresponding states in the block information table 140. The state machine 130 updates the corresponding state in the block information table 140 as a basis for restarting next time.
  • FIG. 2 is an information structure diagram of the block information table according to one embodiment of the invention. Referring FIG. 2, the block information table 140 of FIG. 2 includes several sub-blocks information corresponding to every block in the flash memory respectively. In one embodiment, the size of information of every block is 16 bits. The first column shown in two bits is used to record the state of the memory block, like three different states—empty, used and erasable. The second column is retained, not for ordinary use; it can be used to store the necessary information during expansion of other functions. The third column shown in 12 bits is used for LP mapping, i.e. the mapping relation from a logical address to a physical address.
  • Initially, the information in every sub-block in the block information table 140 is built up according to the contents of the redundant area in the corresponding block inside the flash memory, and stored in a partitioned area in a RAM. When the state machine 130 starts, it performs the corresponding execution according to an analysis result of the block states provided by the block information table 140 to carry out the command repeatedly, and the contents in the block information table 140 are updated by a software. The hardware will be based on the block state (the state values stored in the block state information table). Thus, when it is necessary to carry out the said command, the state machine 130 can be used to replace the micro-controller unit 110 to execute the command repetitively to significantly reduce the load on the micro-controller unit 110 and improve the efficacy of the whole flash memory. While it is not necessary to carry out the command, the state machine 130 enters an idle state to reduce its power consumption.
  • FIG. 3 is the state diagram of a state machine according to an embodiment of this present invention; the device is suitable for executing the command to search for N empty blocks, wherein, N is a positive integer. Referring FIG. 3, the state machine 130 shown in FIG. 1 includes an idle state A, a searching state B, a determining state D, an erasure state D, a verification state E and an ending state F. Wherein, the idle state A is the initial state of state machine 130. The searching state B searches for N empty blocks from the flash memory based on the block states in the flash memory recorded in Block Information Table 140. The determining state C is used to determine which blocks are empty or erasable. The erasure state D is used to erase the contents in the blocks. The verification state E is to verify whether or not the erasure of blocks is successfully completed. The ending state F is used to stop executing the command repetitively.
  • When the state machine 130 begins to receive signals, it means the command has to be executed repeatedly; hence, the state machine 130 enters the searching state B from the idle state A. Once the state machine 130 finds N empty blocks in the flash memory during the searching state B, it would enter the ending state F and stop repeatedly executing the command; oppositely, when the N empty blocks are not yet found, the state machine 130 would enter the determining state C.
  • The state machine 130 determines the present blocks are empty or erasable according to the information in the state column of the sub-blocks during the determining state C. If the block is empty, its address will be recorded in the queuer 150, and the state machine 130 will return to the searching state B to continue searching for the next empty block. If the block is erasable, the state machine 130 enters the erasure state D to erase it so that an erasure command can be directly issued from the hardware; there is no need to issue from the software. In addition, the state machine 130 enters the ending state F from the determining state C to stop executing the command repetitively, when the queuer 150 does not have enough space to queue addresses, or the number of times to repeat a command exceeds a preset number M, i.e. searching in M blocks without finding N empty blocks, wherein M is a positive integer larger than N.
  • When the contents in the blocks are erased, the state machine 130 enters the verification state E from the erasure State D to verify whether or not the erasure of blocks is successful. If so, the state machine 130 would return to the searching state B to look for the next empty block. If not, the state machine 130 would enter the ending state F to stop executing the command repeatedly. Lastly, the command of iterant execution is stopped during the ending state F, and the state is reported to the system. So in this embodiment, the state machine 130 can find the empty blocks in the flash memory that are still usable. If the number of usable empty blocks reaches the needed number, the state machine 130 would automatically stop in order to avoid wasting efficacy of the system and reduce power consumption. In addition, that no software is needed during the execution can also lower the load on the micro-controller unit 110.
  • FIG. 4 is a state diagram of a state machine according to another embodiment of this present invention. The device is suitable for iterant execution, such as erasure, writing-in, reading etc. Referring FIG. 4, the state machine awaits a firmware to issue a command in the idle state A, and then enters the searching state B. When the condition of the searching is met, the state machine would enter the ending State F and report to the system. Oppositely, if the condition is failed, the state machine would enter the determining state C. In this embodiment, the condition of the searching refers to that of ending this state machine. For example, if the state machine is set to erase 10 memory blocks, then the condition of the searching is 10 memory blocks.
  • During the searching State B, if the state of the memory conforms to the condition, the state machine would enter the execution state D. On the contrary, if the state of the memory does not conform to the condition, then the state machine would return to the searching state B. Taking erasure for an example, if the state of the memory is labeled as erasable, the state machine would execute erasing it. If it is labeled as inerasable, the state machine would return to the searching state B.
  • When the execution of state D is completed, the state machine enters the verification state E. If the execution is carried out successfully, the state machine would return to the searching state B to continue carrying out the foregoing executions at the next address of the memory. Oppositely, if the execution fails, the state machine would return to the ending state F, and report to the system. Disclosed as follows is an example of a state machine during its executions of reading, writing-in and erasing.
  • FIG. 5 is a state diagram of a state machine during its execution of reading according to one preferred embodiment of the invention. Referring FIGS. 1 and 5, if a wished execution is reading at a certain memory address in a certain memory block, first, marking the state corresponding to the targeted memory address as “to-be-read” through the firmware. When the state machine 130 is started, the state machine would enter the searching state B from the idle state A. When the designated memory blocks are not yet fully read, the state machine 130 would enter the determining state C. In the determining state C, the memory address and its state indicator are checked. Oppositely, when the designated memory blocks are all read, the state machine 130 would directly enter the ending state F.
  • If the memory address is not within the memory block to be read, or its state indicator labels “not-to-be-read”, the state machine 130 would return to the searching state B, or re-check the next memory address and its state indicator. To the contrary, if the memory address is within the designated memory block and labeled as “to-be-read”, the state machine 130 would return to a reading execution state D. At this moment, the controller 120 is controlled to issue a reading command to the flash memory and returns to the verification state E when the controller 120 finishes performing the execution.
  • If the execution of reading the memory is successfully executed, the state machine 130 would return to the searching State B so as to continue repeating the above steps on the next memory address. Oppositely, if the execution of reading of the memory fails, the state machine would return to the ending state F, and report the state to the system. Therefore, in this embodiment, the state machine 130 can find the contents of a designated block within the flash memory and the system would automatically stop after the searching within the designated block is over. So that, the state machine 130 can share the load on the micro-controller unit 110.
  • FIG. 6 is a state diagram of a state machine during its execution of writing according to one preferred embodiment of the invention. Referring FIGS. 1 and 6. If the desired execution is writing in a certain block in the memory, first, designating the desired address of the memory through a firmware for writing. When the state machine 130 is started, it would enter the searching state B from the idle state A. When the physical memory blocks are not yet fully written, the state machine 130 would enter the determining state C to check the memory address and its state indicator. Oppositely, when the designated memory blocks are all written, the state machine 130 would directly enter the ending state F.
  • While in the determining state C, if the memory address is not within the memory block to be written, or its state indicator labels “not-to-be-written”, the state machine 130 would return to the searching state B, or re-check the next memory address and its state indicator. Contrarily, if the memory address is within the designated memory block and labeled as “to-be-written”, the state machine 130 would return to a writing execution state D. At this moment, the system would issue a writing command to the flash memory through the controller 120, and enter the verification state E after performance of the controller 120.
  • If the execution for writing in the memory is successful, the state machine 130 would return to the searching state B so as to continue repeating the above steps on the next memory address. Oppositely, if the execution for writing in the memory fails, the state machine 130 would return to the ending state F, and report the state to the system. Hence, in this embodiment, the state machine 130 can execute iterant writing on the designated blocks according to the state indicator.
  • FIG. 7 is a state diagram of a state machine during its execution of erasing according to one preferred embodiment of the invention. Referring FIGS. 1 and 7, if the desired execution is iterant erasure, first, labeling the state of the physical address of the to-be-erased memory as erasable in block information table 140 through a firmware. After the state machine 130 is started, it would enter the searching state B. If all the designated blocks are not yet fully erased, the state machine 130 would enter the determining the determining state C. Oppositely, when the designated memory blocks are all erased, the state machine 130 would directly enter the ending state F.
  • If the state of said address is labeled “not-to-be-erased” or the memory address is not within the designated block, the state machine 130 would return to the searching state B to re-check the next memory address and its state indicator. Oppositely, if the address is within the designated block, and its state is labeled “erasable”, the state machine 130 would enter anthe erasure execution state D. At this moment, the controller 120 is controlled to issue an erasing command to the memory and returns to the verification state E when the controller 120 finishes performing the execution.
  • If the execution of erasure is successful, the state machine 130 would return to the state B and repeat the above steps on the next memory address. Oppositely, if the execution of erasure fails, the state machine 130 would return to the ending state F, and report it to the system.
  • By changing the device to issue a command to the state machine from the micro-controller unit when it is necessary to execute an iterant command in the memory, the iterant command can be carried out without involving the micro-controller unit and software, so as to improve the efficacy of the memory and lower its power consumption.
  • Although the present invention has been disclosed above by the preferred embodiments, they are not intended to limit the present invention. Anybody skilled in the art can make some modifications and alteration without departing from the spirit and scope of the present invention. Therefore, the protecting range of the present invention falls in the appended claims.

Claims (13)

What is claimed is:
1. A control device of the memory, used for accelerating the execution of an iterant command in the memory comprising a plurality of blocks; the control device comprises:
a micro-controller unit, used for issuing a command to operate the memory;
a block information table, used for recording the state of the said blocks;
a state machine for obtaining the state information of every block from the block information table and for analyzing the state of every block to repeatedly execute the said command, and to update the state information in the block information table; and
a controller, coupled between the memory and the micro-controller, when determining the command not be executed repeatedly, the command is executed by the micro-controller unit through the control device, when determining the command be executed repeatedly, the command is carried out by the state machine repeatedly.
2. The control device as claimed in claim 1, further comprising a queuer for queuing a plurality of addresses of the state machine needed for iterant execution of the command.
3. The control device as claimed in claim 1, wherein the memory includes a non-volatile memory.
4. The control device as claimed in claim 1, the command comprises reading, writing, erasing or searching for N empty blocks, wherein N is a positive integer.
5. The control device as claimed in claim 4, when the command is executed by the state machine to search for N empty blocks, the state machine further comprising:
an idle state, which is the initial state of the said state machine;
a searching state, used to search for N empty blocks from the memory according to the state record of every block in the block information table;
a determining state, used to determine which blocks are empty or erasable;
an erasure state, used to erase the contents in the blocks;
a verification state, used to verify if the erasure of blocks is successfully completed; and
an ending state, used to stop executing the command repetitively;
wherein, when the state machine receives a starting signal to execute repeatedly the command, the state machine enters the searching state from the idle state; during the searching state the N empty blocks are found in the memory, the state machine enters the ending state; if the N empty blocks are not found in the memory, the state machine enters the determining state; when the determining state determines the present block is empty, the state machine returns to the determining state; when the determining state determines the present block is erasable, the state machine enters the erasure state; after the erasure state erases the contents of the block, the state machine enters the verification state; and when the verification verifies the erasure of the block successful, the state machine returns to the searching state.
6. The control device as claimed in claim 5, wherein the determining state determines that after searching M blocks but not finding N empty blocks, the state machine enters the ending state, and M being a positive integer larger than N.
7. The control device as claimed in claim 5, wherein when the verification state verifies the failure of the erasure, the state machine enters the ending state.
8. The control device as claimed in claim 4, wherein the state machine designates a memory address of a memory block within the memory for reading, the state machine further comprising the following states:
an idle state, which is the initial state of the said state machine;
a searching state, when the state machine is started, it enters the searching state from the idle state;
a determining state, when the designated memory blocks are not fully read, the state machine enters the determining state from the searching state to check the memory address and a state indicator, when the memory address is not within the memory blocks to be read or the state indicator is labeled as “not-to-be-read”, the state machine returns to the searching state to re-check the next memory address and its state indicator;
a reading execution state, when the memory address is within the memory block, and the state indicator is labeled as “to-be-read”, the state machine enters the reading execution state from the determining state to issue a reading command to the memory;
a verification state, when the execution of reading is completed, the state machine enters the verification state from the reading execution state to verify whether or not the execution of reading is successful, when the execution of reading is successful, the state machine returns to the searching state to execute execution of reading on the next memory address; and
an ending state, when the execution of reading fails, the state machine enters the ending state from the verification state.
9. The control device of claim 4, wherein the state machine would directly enter the ending state when the designated memory blocks are fully read in the searching state.
10. The control device as claimed in claim 4, wherein the state machine designates a memory address of a memory block within the memory for writing, the state machine further comprising the following states:
an idle state, which is the initial state of the said state machine;
a searching state, when the state machine is started, it enters the searching state from the idle state;
a determining state, when the designated memory blocks are not fully written, the state machine enters the determining state from the searching state to check the memory address and a state indicator; when the memory address is not within the memory blocks to be written or the state indicator is labeled as “not-to-be-written”, the state machine returns to the searching state to re-check the next memory address and its state indicator;
a writing execution state, when the memory address is within the memory block, and the state indicator is labeled as “to-be-written”, the state machine enters the execution of writing from the determining state to issue a writing command to the memory;
a verification state, when the execution of writing is completed, the state machine enters the verification state from the writing execution state to verify whether or not the execution of writing is successful, when the execution of writing is successful, the state machine returns to the searching state to execute writing on the next memory address; and
an ending state, when the execution of writing fails, the state machine enters the ending state from the verification state.
11. The control device as claimed in claim 10, wherein the state machine would directly enter the ending state when the designated memory blocks are fully written in the searching state.
12. The control device as claimed in claim 4, wherein the state machine designates a memory address of a memory block within the memory for erasing, the state machine further comprising the following states:
an idle state, which is the initial state of the said state machine;
a searching state, when the state machine is started, it enters the searching state from the idle state;
a determining state, when the designated memory blocks are not fully erased, the state machine enters the determining state from the searching state to check the memory address and a state indicator, when the memory address is not within the memory blocks to be erased or the state indicator is labeled as “not-to-be-erased”, the state machine returns to the searching state to re-check the next memory address and its state indicator;
an erasing execution state, when the memory address is within the memory block, and the state indicator is labeled as “to-be-erased”, the state machine enters the erasing execution state from the determining state to issue an erasing command to the memory;
a verification state, when the erasing execution is completed, the state machine enters the verification state from the writing execution state to verify whether or not the erasing execution is successful, when the erasing execution is successful, the state machine returns to the searching state to execute an iterant erasing execution on the next memory address; and
an ending state, when the erasing execution fails, the state machine enters the ending state from the verification state.
13. As claimed in claim 12 the control device, wherein the state machine would directly enter the ending state when the designated memory blocks are fully erased in the searching state.
US11/610,509 2006-09-26 2006-12-14 Control device for accelerating memory to execute iterant command Active 2028-07-05 US7765367B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
TW95135520A 2006-09-26
TW095135520A TWI306255B (en) 2006-09-26 2006-09-26 Control device for accelerating memory to execute iterant command
TW95135520 2006-09-26

Publications (2)

Publication Number Publication Date
US20080077751A1 true US20080077751A1 (en) 2008-03-27
US7765367B2 US7765367B2 (en) 2010-07-27

Family

ID=39226394

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/610,509 Active 2028-07-05 US7765367B2 (en) 2006-09-26 2006-12-14 Control device for accelerating memory to execute iterant command

Country Status (3)

Country Link
US (1) US7765367B2 (en)
JP (1) JP4594944B2 (en)
TW (1) TWI306255B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
TWI459203B (en) * 2012-10-02 2014-11-01 Winbond Electronics Corp Data storage device and control method for non-volatile memory
US9377966B2 (en) 2013-10-09 2016-06-28 Samsung Electronics Co., Ltd. Method and apparatus for efficiently processing storage commands

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034922A (en) * 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US20030226063A1 (en) * 2002-05-31 2003-12-04 Oracle International Corporation Verifying input/output command data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH052529A (en) * 1991-06-24 1993-01-08 Iwaki Electron Corp Ltd Method and circuit for accessing flash memory
JP3099908B2 (en) * 1991-08-09 2000-10-16 株式会社東芝 EEPROM control device
JPH096747A (en) * 1995-06-20 1997-01-10 Ricoh Co Ltd Flash memory controller
JPH0991195A (en) * 1995-09-25 1997-04-04 Kawasaki Steel Corp Block memory management device
JP2001006379A (en) * 1999-06-16 2001-01-12 Fujitsu Ltd Flash memory having copying and transfer functions
JP2003203486A (en) * 2002-01-08 2003-07-18 Seiko Epson Corp Semiconductor memory device and its control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034922A (en) * 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US20030226063A1 (en) * 2002-05-31 2003-12-04 Oracle International Corporation Verifying input/output command data

Also Published As

Publication number Publication date
JP4594944B2 (en) 2010-12-08
TWI306255B (en) 2009-02-11
TW200816199A (en) 2008-04-01
US7765367B2 (en) 2010-07-27
JP2008084288A (en) 2008-04-10

Similar Documents

Publication Publication Date Title
US7076598B2 (en) Pipeline accessing method to a large block memory
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
JP5728672B2 (en) Hybrid memory management
US8234466B2 (en) Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof
US8595409B2 (en) Apparatus and method for reorganization of mapping information in flash memory
JP5649742B2 (en) Transaction log restore
US8285954B2 (en) Memory system managing a plurality of logs
US20170160989A1 (en) Solid state disk and method for implementing trim command of the same
US11625330B2 (en) Storage device using buffer memory in read reclaim operation
US10475516B2 (en) Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method
JP2004220557A (en) Controller for xip in serial flash memory, its method and flash memory chip using the same
EP1228510A1 (en) Space management for managing high capacity nonvolatile memory
KR20050081769A (en) Controller for controlling nonvolatile memory
JP2013506903A (en) Power shutdown management
US7925821B2 (en) Nonvolatile semiconductor storage device and method of managing the same
US20120179859A1 (en) Nonvolatile memory apparatus performing ftl function and method for controlling the same
CN106802870B (en) high-efficiency Nor-Flash controller of embedded system chip and control method
US20140223075A1 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
US20200409845A1 (en) Memory system
US20110035543A1 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US7278001B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
CN114281265B (en) Storage medium failure processing method and device and solid state disk
US7765367B2 (en) Control device for accelerating memory to execute iterant command
CN113885808A (en) Mapping information recording method, memory control circuit unit and memory device
TWI749279B (en) A data storage device and a data processing method

Legal Events

Date Code Title Description
AS Assignment

Owner name: ITE TECH. INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUNG, MING-HSUN;HSIEH, YU-LIN;REEL/FRAME:018674/0057

Effective date: 20061128

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: LTOS); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552)

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2553); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 12