1. A memory array, comprising:
a number of single level memory cells;
a number of multiple level memory cells; and
a first select gate directly coupled to a first single level memory cell, the first single level memory cell being directly coupled in series to a first multiple level memory cell of a continuous number of series coupled multiple level memory cells;
a second select gate directly coupled to a second single level memory cell, the second single level memory cell being directly coupled in series to a second multiple level memory cell of the continuous number of series coupled multiple level memory cells;
wherein the first and the second multiple level memory cells are located at opposite ends of the continuous number of series coupled multiple level memory cells; and
wherein the second single level memory cell is programmed subsequent to programming a lower page and an upper page for each of the continuous number of series coupled multiple level memory cells.
2. The array of claim 1, wherein the first and second single level memory cells and the continuous number of series coupled multiple level memory cells form a NAND string of memory cells.
3. The array of claim 1, wherein the continuous number of series coupled multiple level memory cells includes at least 30 multiple level memory cells.
4. A memory array, comprising:
a number of strings of memory cells each including a number of memory cells coupled in series between a first select gate at a first end of the string and a second select gate at a second end of the string;
wherein, for each of the strings of memory cells:
the first select gate is directly coupled to a first memory cell operated as a single level cell;
the second select gate is directly coupled to a second memory cell operated as a single level cell; and
a continuous number of memory cells operated as multiple level memory cells are interposed between and coupled to the first and the second memory cell; and
wherein the second memory cell operated as a single level cell is programmed prior to programming an upper page of at least one of the continuous number of memory cells operated as multiple level memory cells.
5. The array of claim 4, wherein, for each of the strings of memory cells, the first memory cell and the second memory cell are the only memory cells operated as single level memory cells.
6. The array of claim 4, wherein the first memory cell and the second memory cell are programmed via a single level programming process and the continuous number of memory cells operated as multiple level memory cells are programmed via a lower page and an upper page programming process.
7. The array of claim 4, wherein the continuous number of memory cells operated as multiple level memory cells includes 31 memory cells.
8. The array of claim 4, wherein the number of memory cells are non-volatile floating gate memory cells.
9. The array of claim 4, wherein the first select gate is a source select gate and the second select gate is a drain select gate.
10. The array of claim 4, wherein the number of strings of memory cells are NAND strings.
11. The array of claim 10, wherein each of the NAND strings enables 128 data input selections.
12. A method of operating a memory array, comprising:
programming a first single level memory cell located at a first end of a first string of memory cells;
subsequently programming a continuous number of multiple level memory cells coupled in series to each other and to the first single level memory cell; and
programming a second single level memory cell located at a second end of the first string of memory cells;
wherein the first and second single level memory cells are the only single level memory cells within the first string of memory cells; and
wherein programming the continuous number of multiple level memory cells includes performing a lower page programming process and an upper page programming process.
13. The method of claim 12, including:
programming a third single level memory cell located at a first end of a second string of memory cells; and
subsequently programming a continuous number of multiple level memory cells coupled in series to each other and to the third single level memory cell.
14. The method of claim 13, including programming a fourth single level memory cell located at a second end of the second string of memory cells, wherein the third and fourth single level memory cells are the only single level memory cells within the second string of memory cells.
15. The method of claim 13, wherein the first string of memory cells is adjacent to the second string of memory cells.
16. The method of claim 15, including programming the first and the third single level memory cells prior to programming the continuous number of multiple level memory cells of each of the first and the second strings of memory cells.
17. The method of claim 14, including programming the fourth single level memory cell prior to programming an upper page of at least one the continuous number of multiple level memory cells coupled in series to each other and to the third single level memory cell.
18. The method of claim 12, including programming the second single level memory cell subsequent to programming a lower page and an upper page for each of the continuous number of multiple level memory cells coupled in series to each other and to the first single level memory cell.
19. The method of claim 12, including programming the second single level memory cell prior to programming an upper page of at least one of the continuous number of multiple level memory cells coupled in series to each other and to the first single level memory cell.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of providing network access across a shared communications medium between competing users, the method comprising:
monitoring network access usage by each user during a time interval;
forecasting network access usage by each user during a future time interval based on said monitored network access usage by each user, wherein said forecasting comprises predicting future network access usage each user based upon monitored past network access usage patterns of each user, wherein the usage patterns of each user are analyzed to determine an appropriate algorithm to apply for forecasting network access usage; and
based on said forecasted network access usage, allocating network access to each user for the future time interval, wherein allocating network access comprises prioritizing each user, and wherein prioritizing each user comprises:
comparing said monitored network access usages for each user with a specified respective minimum levels of network access for each user, and
awarding priority to qualified users when said respective monitored network access usage for the qualified users falls below the qualified users’ specified respective minimum level of network access.
2. The method of claim 1, wherein allocating network access comprises allocating network access to the users proportionally based on each user’s forecasted network access usage.
3. The method of claim 1, wherein said prioritizing is based on each user’s forecasted network access usage.
4. The method of claim 1, wherein users are prioritized based on an established minimum quality of service (QoS) standard.
5. The method of claim 1, wherein prioritizing is based on service level agreements (SLAs) of the users regarding the provision of network access.
6. The method of claim 5, wherein SLAs specify the respective minimum levels of network access for each user.
7. The method of claim 1, wherein each network access allocation represents a bandwidth allowance of a respective user during the future time interval.
8. The method of claim 1, wherein each network access allocation represents bandwidth to be utilized by each user during the future time interval.
9. A method of providing network access across a shared communications medium between competing users pursuant to service level agreements (SLAs) of the users, the method comprising:
monitoring network access usage by each user during a time interval;
comparing said monitored network access usage by each user with a predetermined threshold value;
determining if each user has a first assigned forecasting function;
assigning the first forecasting function to each user determined to not have a previously assigned forecasting function;
determining a usage pattern of each user having had assigned the first forecasting function;
assigning a second forecasting function to each user determined to have had assigned the first forecasting function and a qualified usage pattern;
forecasting future bandwidth of each user over a future time interval based on the monitored network access usage;
prioritizing each user for access to the forecasted future bandwidth, wherein prioritizing each user comprises:
comparing said monitored network access usages for each user with a specified respective minimum level of network access for each user, and
awarding priority to qualified users when said respective monitored network access usage for the qualified users falls below the qualified users’ specified respective minimum level of network access; and
soliciting a user to modify the user’s SLA if the user’s monitored network access usage and the user’s forecasted future usage varies from the predetermined value by a predetermined tolerance.
10. The method of claim 9, wherein soliciting the user comprises contacting the user via email.
11. The method of claim 9, wherein soliciting the user comprises contacting the user via redirection of a web browser of the user to a solicitation web page.
12. The method of claim 9, wherein network access comprises bandwidth across the shared communications medium for consumption by each user in conveying data of the user.
13. The method of claim 9, further comprising, based on said monitored network access usage, allocating network access to each user for the future time interval.
14. A computerized method of allocating among a plurality of users bandwidth for conveying information across a shared communications medium, the method comprising:
receiving data representative of past bandwidth of each user during a time interval;
determining if each user has a first assigned forecasting function;
assigning the first forecasting function to each user determined to not have a previously assigned forecasting function;
determining if each user having had assigned the first forecasting function is associated with a seasonal pattern;
assigning a second forecasting function to each user determined to have had assigned the first forecasting function and a qualified seasonal pattern;
forecasting future bandwidth of each user over a future time interval based on the data representative of the past bandwidth;
prioritizing users, wherein prioritizing the users comprises:
comparing said monitored network access usages for each user with a specified respective minimum level of network access for each user, and
awarding priority to qualified users when said respective monitored network access usage for the qualified users falls below the qualified users’ specified respective minimum level of network access; and
allocating bandwidth to each user sequentially in decreasing order of user priority.
15. The computerized method of claim 14, wherein the bandwidth data is the bandwidth requested for each user.
16. The computerized method of claim 14, wherein the bandwidth data is the bandwidth consumption of each user.
17. The computerized method of claim 16, wherein the bandwidth that is forecasted is based on the bandwidth consumption of each user.