Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
First Claim
1. A non-volatile memory system comprising:
- memory control circuitry; and
a non-volatile memory unit coupled to the memory control circuitry and including one or more non-volatile memory devices organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one even sector of information into a sector of a first non-volatile memory device and for programming of overhead of the at least one even sector of information into a sector of a second non-volatile memory device and for programming user data of at least one odd sector of information into the sector of the second non-volatile memory device and for programming the overhead of the at least one odd sector of information into the sector of the second non-volatile memory device,wherein sectors of information are programmed into at least two non-volatile memory devices simultaneously.
8 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment of the present invention, a memory storage system for storing information organized in sectors within a nonvolatile memory bank is disclosed. The memory bank is defined by sector storage locations spanning across one or more rows of a nonvolatile memory device, each the sector including a user data portion and an overhead portion. The sectors being organized into blocks with each sector identified by a host provided logical block address (LBA). Each block is identified by a modified LBA derived from the host-provided LBA and said virtual PBA, said host-provided LBA being received by the storage device from the host for identifying a sector of information to be accessed, the actual PBA developed by said storage device for identifying a free location within said memory bank wherein said accessed sector is to be stored. The storage system includes a memory controller coupled to the host; and a nonvolatile memory bank coupled to the memory controller via a memory bus, the memory bank being included in a non-volatile semiconductor memory unit, the memory bank has storage blocks each of which includes a first row-portion located in said memory unit, and a corresponding second row-portion located in each of the memory unit, each of the memory row-portions provides storage space for two of said sectors, wherein the speed of performing write operations is increased by writing sector information to the memory unit simultaneously.
331 Citations
40 Claims
-
1. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and including one or more non-volatile memory devices organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one even sector of information into a sector of a first non-volatile memory device and for programming of overhead of the at least one even sector of information into a sector of a second non-volatile memory device and for programming user data of at least one odd sector of information into the sector of the second non-volatile memory device and for programming the overhead of the at least one odd sector of information into the sector of the second non-volatile memory device, wherein sectors of information are programmed into at least two non-volatile memory devices simultaneously. - View Dependent Claims (2)
-
-
3. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and including one or more non-volatile memory devices organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one first even sector of information into a sector of a first non-volatile memory device, for programming of user data of at least one second even sector of information into a sector of a second non-volatile memory device, and for programming of overhead of the at the least one first even sector of information and of the at least one second even sector of information into the sector of the second non-volatile memory device and for programming user data of at least one first odd sector of information into the sector of the second non-volatile memory device, for programming of user data of at least one second odd sector of information into the sector of the first non-volatile memory device, and for programming of overhead of the at least one first odd sector of information and of the at least one second odd sector of information into the sector of the second non-volatile memory device, wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second non-volatile memory devices simultaneously and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second non-volatile memory devices simultaneously. - View Dependent Claims (4)
-
-
5. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and including one or more non-volatile memory devices including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one even sector of information into a first non-volatile memory device and for programming of overhead of the at least one even sector of information into a second non-volatile memory device and for programming user data of at least one odd sector of information into the second non-volatile memory device and for programming the overhead of the at least one odd sector of information into the second non-volatile memory device, wherein sectors of information are programmed into at least two non-volatile memory devices simultaneously. - View Dependent Claims (6, 7)
-
-
8. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and including one or more non-volatile memory devices including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one first even sector of information and at least one first odd sector of information into a first non-volatile memory device and for programming user data of at least one second even sector of information and at least one second odd sector of information into a second non-volatile memory device and for programming of overhead of the at least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information, and the at least one second odd sector of information into the second non-volatile memory device, wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second non-volatile memory devices simultaneously and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second non-volatile memory devices simultaneously. - View Dependent Claims (9, 10)
-
-
11. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one even sector of information into a first sector and for programming of overhead of the at least one even sector of information into a second sector and for programming user data of the at least one odd sector of information into the second sector and for programming the overhead of the at least one odd sector of information into the second sector, wherein at least two sectors of information are programmed simultaneously. - View Dependent Claims (12)
-
-
13. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry and organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user, data and overhead, the memory control circuitry for programming of user data of at least one first even sector of information and of at least one first odd sector of information into a first sector and for programming user data of at least one second even sector of information and of at least one second odd sector of information into a second sector and for programming of overhead of the at the least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information and the at least one second odd sector of information into the second sector, wherein the user data of the at the least one first even sector of information and the user data of the at least one second even sector of information are programmed simultaneously and the user data of the at the least one first odd sector of information and the user data of the at least one second odd sector of information are programmed simultaneously. - View Dependent Claims (14)
-
-
15. A method for programming a plurality of sectors of information into at least two non-volatile memory devices organized into sectors of a non-volatile memory unit, a sector of information being an even sector of information or an odd sector of information and even and odd sectors of information each including user data and overhead, each sector including storage locations for a plurality of sectors of information, the method comprising:
-
programming the user data of at least one even sector of information into a sector of a first non-volatile memory device; programming the user data of at least one odd sector of information into a sector of a second non-volatile memory device; programming overhead of the at least one even sector of information into the sector of the second non-volatile memory device; and programming overhead of the at least one odd sector of information into the sector of the second non-volatile memory device, wherein sectors of information are programmed into the at least two non-volatile memory devices simultaneously. - View Dependent Claims (16)
-
-
17. A method for programming a plurality of sectors of information into at least two nonvolatile memory devices organized into sectors of a non-volatile memory unit, a sector of information being an even sector of information or an odd sector of information and even and odd sectors of information each including user data and overhead, each sector including storage locations for a plurality of sectors of information, the method comprising:
-
programming the user data of at least one first even sector of information into a sector of a first non-volatile memory device; programming the user data of at least one second even sector of information into a sector of a second non-volatile memory device; programming the user data of at least one first odd sector of information into the sector of the second non-volatile memory device; programming the user data of at least one second odd sector of information into the sector of the first non-volatile memory device; programming overhead of the at least one first even sector of information and of the at least one second even sector of information into the sector of the second non-volatile memory device; and programming overhead of the at least one first odd sector of information and of the at least one second odd sector of information into the sector of the second non-volatile memory device, wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second non-volatile memory devices simultaneously and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second non-volatile memory devices simultaneously. - View Dependent Claims (18)
-
-
19. A method for programming a plurality of sectors of information into at least two non-volatile memory devices, a sector of information being an even sector of information or an odd sector of information and even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one even sector of information into a first non-volatile memory device; programming of overhead of the at least one even sector of information into a second non-volatile memory device; programming user data of at least one odd sector of information into the second non-volatile memory device; and programming the overhead of the at least one odd sector of information into the second non-volatile memory device, wherein at least two sectors of information are programmed into at least two non-volatile memory devices simultaneously. - View Dependent Claims (20, 21)
-
-
22. A method for programming a plurality of sectors of information into at least two non-volatile memory devices, a sector of information being an even sector of information or an odd sector of information and even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one first even sector of information and at least one first odd sector of information into a first non-volatile memory device; programming user data of at least one second even sector of information and at least one second odd sector of information into the second non-volatile memory device; and programming of overhead of the at least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information, and the at least one second odd sector of information into the second non-volatile memory device; wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second non-volatile memory devices simultaneously and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second non-volatile memory devices simultaneously. - View Dependent Claims (23, 24)
-
-
25. A method for programming a plurality of sectors of information in a non-volatile memory unit organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one even sector of information into a first sector; programming of overhead of the at least one even sector of information into a second sector; programming user data of the at least one odd sector of information into the second sector; and programming the overhead of the at least one odd sector of information into the second sector, wherein at least two sectors of information are programmed simultaneously. - View Dependent Claims (26)
-
-
27. A method for programming a plurality of sectors of information in a non-volatile memory unit organized into sectors, a sector including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one first even sector of information and of at least one first odd sector of information into a first sector; programming user data of at least one second even sector of information and of at least one second odd sector of information into a second sector; and programming of overhead of the at the least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information, and the at least one second odd sector of information into the second sector; wherein the user data of the at the least one first even sector of information and the user data of the at least one second even sector of information are programmed simultaneously and the user data of the at the least one first odd sector of information and the user data of the at least one second odd sector of information are programmed simultaneously. - View Dependent Claims (28)
-
-
29. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry including a plurality of rows, each row including one or more row-portions, each row-portion including storage locations providing storage space for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one even sector of information into a first row-portion and for programming of overhead of the at least one even sector of information into a second row-portion and for programming user data of at least one odd sector of information into the second row-portion and for programming the overhead of the at least one odd sector of information into the second row-portion, wherein at least two sectors of information are programmed to a row simultaneously. - View Dependent Claims (30, 31)
-
-
32. A non-volatile memory system comprising:
-
memory control circuitry; and a non-volatile memory unit coupled to the memory control circuitry including a plurality of rows, each row including one or more row-portions, each row-portion including storage locations for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the memory control circuitry for programming of user data of at least one first even sector of information into a first row-portion, for programming of user data of at least one first odd sector of information into the first row-portion, for programming user data of at least one second even sector of information into a second row-portion, for programming of user data of at least one second odd sector of information into the second row-portion, and for programming of overhead of the at least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information, and, the at least one second odd sector of information into the second row-portion, wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second row portions simultaneously, and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second row portions simultaneously. - View Dependent Claims (33, 34)
-
-
35. A method for programming a plurality of sectors of information into a non-volatile memory unit including a plurality of rows, each row including one or more row-portions, each row-portion including storage locations providing storage space for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one even sector of information into a first row-portion; programming of overhead of the at least one even sector of information into a second row-portion; programming user data of at least one odd sector of information into the second row-portion; and programming the overhead of the at least one odd sector of information into the second row-portion, wherein at least two sectors of information are programmed to a row simultaneously. - View Dependent Claims (36, 37)
-
-
38. A method for programming a plurality of sectors of information into a non-volatile memory unit including a plurality of rows, each row including one or more row-portions, each row-portion including storage locations providing storage space for a plurality of sectors of information, a sector of information being an even sector of information or an odd sector of information, even and odd sectors of information each including user data and overhead, the method comprising:
-
programming of user data of at least one first even sector of information and of at least one first odd sector of information into a first row-portion; programming user data of at least one second even sector of information and of at least one second odd sector of information into a second row-portion; and programming of overhead of the at least one first even sector of information, the at least one second even sector of information, the at least one first odd sector of information, and the at least one second odd sector of information into the second row-portion; wherein the user data of the at least one first even sector of information and the user data of the at least one second even sector of information are programmed into the first and second row portions simultaneously, and the user data of the at least one first odd sector of information and the user data of the at least one second odd sector of information are programmed into the first and second row portions simultaneously. - View Dependent Claims (39, 40)
-
Specification