Method and apparatus for execution of operations in a flash memory array
First Claim
1. A flash memory array system fabricated on a single substrate and coupled to a processing device comprising:
- an interrupt status bit, which when set, permits issuance of an interrupt during the execution of a command;
a user interface for receiving commands from the processing device to be executed by the flash memory, said user interface comprising a command queue having storage to store said received commands including a current command executing and logic for issuing an interrupt signal if the interrupt status bit is set and the command queue comprises the current command executing and a next command to be executed;
an array controller coupled to the user interface to receive operations to execute, said array controller controlling power sources to read, erase and program the memory array, said array controller coupled to receive the interrupt signal issued by the user interface;
at least one register coupled to the array controller to store a state of the array controller;
upon receipt of the interrupt signal, said array controller placing the memory array in a predetermined state, saving the state of the array controller, executing an operation corresponding to the next command, restoring the state of the array controller stored in the registers, and continuing execution of an operation corresponding to the current command;
such that interrupts can be processed by the flash memory system without corrupting the flash arrays.
1 Assignment
0 Petitions
Accused Products
Abstract
A flash memory system includes a user interface and array controller. The user interface receives the user command issued by the processor and has the ability to queue a plurality of commands for execution. The user interface further functions as an arbiter to control the priority of commands to be executed. The array controller performs the operations on the flash array such as program and erase. The array controller consists of a general purpose processor with program memory which is programmable by the user. The program memory stores one or more algorithms that can be executed by the array controller. The algorithm is selected according to the command received at the user interface. The algorithms can be customized simply by programming the program memory. The system further provides an interrupt mechanism which enables the flash memory system to perform a context switch of a higher priority command with the lower priority, but currently executing, command.
424 Citations
108 Claims
-
1. A flash memory array system fabricated on a single substrate and coupled to a processing device comprising:
-
an interrupt status bit, which when set, permits issuance of an interrupt during the execution of a command; a user interface for receiving commands from the processing device to be executed by the flash memory, said user interface comprising a command queue having storage to store said received commands including a current command executing and logic for issuing an interrupt signal if the interrupt status bit is set and the command queue comprises the current command executing and a next command to be executed; an array controller coupled to the user interface to receive operations to execute, said array controller controlling power sources to read, erase and program the memory array, said array controller coupled to receive the interrupt signal issued by the user interface; at least one register coupled to the array controller to store a state of the array controller; upon receipt of the interrupt signal, said array controller placing the memory array in a predetermined state, saving the state of the array controller, executing an operation corresponding to the next command, restoring the state of the array controller stored in the registers, and continuing execution of an operation corresponding to the current command; such that interrupts can be processed by the flash memory system without corrupting the flash arrays. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
2. A flash memory system fabricated on a single substrate and coupled to a processing device comprising:
-
a flash array comprising a plurality of flash cells for storage of data; a user interface for receiving commands from the processing device to be executed by the flash memory system, said user interface comprising a command queue having storage to store said received commands and logic that generates a program memory address identifying the location of code in a program memory which, when executed, performs the command; an array controller coupled to the user interface to receive the program memory address, said array controller comprising a micro-controller and the program memory, said program memory being programmable by a user to comprise code that is selectively executed by the microcontroller, said program memory address identifying the location of the code in program memory the micro-controller is to execute, said micro-controller performing operations with respect to the flash array in accordance with the code in program memory; wherein the flash memory system can be programmed to perform a plurality of functions to be performed by the micro-controller, increasing the flexibility of the flash memory system and off loading control of the flash array from the processor device onto the micro-controller. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system comprising:
-
a processor for issuing commands; a bus coupled to the processor; a flash memory array system fabricated on a single substrate and coupled to the bus comprising; a flash memory array; an interrupt status bit, which when set, permits issuance of an interrupt during the execution of a command; a user interface for receiving commands from the processor to be executed by a flash memory array system, said user interface comprising a command queue having storage to store said received commands including the current command executing and logic for issuing an interrupt signal if the interrupt status bit is set and the command queue comprises the current command executing and a next command to be executed; an array controller coupled to the user interface to receive operations to execute, said array controller controlling power sources to read, erase and program the flash memory array, said array controller coupled to receive the interrupt signal issued by the user interface; at least one register coupled to the array controller to store a state of the array controller; upon receipt of the interrupt signal, said array controller placing the flash memory array in a predetermined state, saving the state of the array controller, executing an operation corresponding to the next command, restoring the state of the array controller stored in the registers, and continuing execution of an operation corresponding to the current command; such that interrupts can be processed by the flash memory system without corrupting the flash memory arrays. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A flash memory array system fabricated on a single substrate and coupled to a processing means comprising:
-
an interrupt status means, which when set, permits issuance of an interrupt during the execution of a command; receiving means coupled to the processing means for receiving from the processing means commands to be executed by the flash memory and having storage to store the received commands including the current command executing and means for issuing an interrupt signal if the interrupt status means is set and the storage comprises the current command executing and a next command to be executed; executing means coupled to the receiving means to receive operations to execute, said executing means controlling power sources to read, erase and program the flash memory array, said executing means coupled to receive the interrupt signal issued by the receiving means; storage means coupled to the executing means to store a state of the executing means; upon receipt of the interrupt signal, said executing means placing the flash memory array in a predetermined state, saving the state of the executing means, executing operations corresponding to the next command, restoring the state of the array controller stored in the storage means, and continuing execution of operations corresponding to the current command; such that interrupts can be processed by the flash memory system without corrupting the flash memory arrays. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70)
-
-
71. In a flash memory array system coupled to a processing device, said system comprising at least one flash memory array, a command queue and an array controller for performing operations on the array, a method performed by the flash memory system for processing interrupts of execution of operations on the flash memory array without corrupting the flash memory array, said method comprising the steps of:
-
receiving from the processing device commands to be executed by the flash memory array system; executing a current command to perform operations on the flash memory array; storing the received commands in said command queue having storage to store the received of commands including the current command executing; providing interrupt status, which when set to a first state, permits issuance of an interrupt during the execution of a command; if the interrupt status is set and the command queue comprises the current command executing and a next command to be executed, saving the state of the array controller in at least one register, executing the next command, restoring the state of the array controller stored in the register, and continuing execution of the current command; such that interrupts can be processed by the flash memory system without intervention from the processing device and without corrupting the flash arrays. - View Dependent Claims (72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82)
-
-
83. A system comprising:
-
a processor for issuing commands; a bus coupled to the processor; a flash memory system fabricated on a single substrate and coupled to the bus comprising; a flash array comprising a plurality of flash cells for storage of data; a user interface for receiving commands from the processor to be executed by the flash memory system, said user interface comprising a command queue having storage to store the received commands and logic that generates a program memory address identifying the location of code in a program memory which, when executed, performs the command; an array controller coupled to the user interface to receive the program memory address, said array controller comprising a micro-controller and the program memory, said program memory being programmable by a user to comprise code that is selectively executed by the microcontroller, said program memory address identifying the location of the code in the program memory the micro-controller is the execute, said micro-controller performing operations with respect to the flash array in accordance with the code in program memory; wherein the flash memory system can be programmed to perform a plurality of functions to be performed by the micro-controller, increasing the flexibility of the flash memory system and off loading control of the flash array from the processor onto the micro-controller. - View Dependent Claims (84, 85, 86, 87, 88, 89, 90, 91)
-
-
92. A flash memory system fabricated on a single substrate comprising:
-
a flash array comprising a plurality of flash cells for storage of data; receiving means for receiving commands to be executed by the flash memory system; command means for generating a program memory address identifying the location of code in a program memory means which, when executed, performs the command; execution means coupled to receive the program memory address, said execution means comprising the program memory means, said program memory means being programmable by a user to comprise code that is selectively executed by the execution means, said program memory address identifying the location of the code in program memory means the execution means is to execute, said execution means performing operations with respect to the flash memory array in accordance with the code in program memory; wherein the flash memory system can be programmed to perform a plurality of functions to be performed by the execution means, increasing the flexibility of the flash memory system and off loading control of the flash array onto the execution means. - View Dependent Claims (93, 94, 95, 96, 97, 98, 99, 100)
-
-
101. In a flash memory array system implemented as a single substrate comprising at least one flash memory array, logic and a command queue, a method performed by the flash memory array system for performing a plurality of programmable commands comprising the steps of:
-
receiving from a coupled processing device commands to be executed by the flash memory system; providing a program memory comprising at least one section of code; generating a program memory address in response to the command received identifying a location of code in program memory which, the code, when executed, performs a command received from the processing device; and executing the code starting at the location identified by the program memory address. - View Dependent Claims (102, 103, 104, 105, 106, 107, 108)
-
Specification