1461177435-96e36bd9-5445-4ed8-a66a-9ffb72fa866d

1. A method comprising:
receiving incoming network packets with a network device;
assigning, with the network device, the network packets to a selected one of a plurality of priority queues maintained by the network device based on one or more priority characteristics of the network packets;
assigning a first one of a plurality of memory pages to the selected one of the priority queues, wherein each of the plurality of memory pages comprises a block of contiguous memory address space;
based at least on the assignment of the network packets to the selected one of the priority queues and the assignment of the first memory page to the selected one of the priority queues, storing each of the network packets to the first memory page by writing the network packets to memory locations in the first memory page;
creating a metadata for each of the network packets, wherein the metadata comprises a reference to the memory location in the first memory page of the corresponding network packet; and
enqueuing the metadata for each of the network packets on the selected one of the priority queues.
2. The method of claim 1, wherein enqueuing the metadata comprises enqueuing the metadata for each of the network packet on the selected one of the priority queues in the order in which the corresponding network packets were received.
3. The method of claim 1,
wherein each of the plurality of priority queues is associated with a respective one of a plurality of quality of service priority levels, and
wherein the network packets are assigned based on the quality of service priority level for the selected one of the priority queues.
4. The method of claim 1, wherein the first memory page comprises a block of physical address space of a shared computer-readable storage medium.
5. The method of claim 4,
wherein the computer-readable storage medium comprises a memory bank addressable by rows and columns, and
wherein the block of physical address space begins at the first column of a first row of the bank and ends at the last column of a second row of the bank.
6. The method of claim 1, further comprising:
receiving a subsequent incoming network packet with the network device;
assigning, with the network device, the subsequent network packet to the selected one of the priority queues; and
determining whether the first memory page has adequate memory for the network packets and for the subsequent network packet.
7. The method of claim 6, further comprising:
assigning a second one of the plurality of memory pages to the priority queue when the first memory page does not have adequate memory; and
writing the subsequent network packet to the second memory page.
8. The method of claim 7, further comprising:
writing a portion of the subsequent network packet to the first memory page at a memory location that is adjacent to a memory location at which the network packets are written when the first memory page has adequate memory; and
writing a remainder of the subsequent network packet to the second memory page.
9. The method of claim 1, further comprising:
scheduling the network packets to be read from the first memory page;
reading the network packets from the first memory page;
writing the network packets to a prefetch buffer;
determining whether additional network packets are stored in the first memory page; and
freeing the first memory page from the selected one of the priority queues when no additional packets are stored in the first memory page.
10. The method of claim 9, wherein scheduling the network packets to be read from the first memory page comprises:
dequeuing metadata for the network packets from the selected one of the priority queues; and
determining the memory addresses for each of the network packets from the corresponding metadata for each of the network packets.
11. A network device comprising:
a control unit comprising a processor; and
a priority queuing system of the control unit, wherein the priority queuing system comprises:
a plurality of priority queues;
a computer-readable storage medium comprising a plurality of memory pages, wherein each of the plurality of memory pages comprises a block of contiguous memory address space;
a packet classification module that receives network packets and assigns the network packets to a selected one of the plurality of priority queues based on one or more priority characteristics of the network packets; and
a memory management module,
wherein the memory management module assigns a first one of the plurality of memory pages to then selected one of the plurality of priority queues, and
wherein the memory management module, based at least on the assignment of the network packets to the priority queue and the assignment of the first memory page to the priority queue, stores the network packets to the first memory page by writing the network packets to memory locations in the first memory page.
12. The network device of claim 11, wherein the memory management module generates a metadata for each of the network packets and enqueues the metadata for each network packet on the selected one of the priority queues in the order in which the corresponding network packets were received by the packet classification module.
13. The network device of claim 12, further comprising:
a prefetch buffer;
wherein the metadata for each network packet comprises a reference to the memory location of the network packet in the first memory page,
wherein the memory management module comprises a scheduler that dequeues the metadata for each network packet,
wherein the memory management module, based on the reference in the metadata for each network packet, reads the network packets from the first memory page, and
wherein the memory management module writes the network packets to the prefetch buffer.
14. The network device of claim 11,
wherein each of the plurality of priority queues is associated with a respective one of a plurality of quality of service priority levels, and
wherein the packet classification module assigns the network packets based on the quality of service priority level for the selected one of the priority queues.
15. The network device of claim 11,
wherein the packet classification module receives a subsequent one or more network packets and assigns the subsequent network packets to the selected one of the priority queues based on one or more priority characteristics of the subsequent network packets, and
wherein the memory management module assigns a second one of the plurality of memory pages to the selected one of the priority queues and stores the subsequent network packets to the second memory page by writing the network packets to memory locations in the second memory page.
16. The network device of claim 11,
wherein the memory management module comprises a free queue that contains a reference for each of the memory pages that are not assigned to one of the priority queues.
17. The network device of claim 11,
wherein the computer-readable storage medium comprises a bank that comprises the first memory page and is addressable by rows and columns, and
wherein the memory management module stores each of the network packets by writing the network packets to a single row of the bank.
18. A non-transitory computer-readable medium comprising instructions for causing a programmable processor to:
receive incoming network packets with a network device;
assign, with the network device, the network packets to a selected one of a plurality of priority queues based on one or more priority characteristics of the network packets;
assign a first one of a plurality of memory pages to the selected one of the priority queues;
store each of the network packets to the first memory page by writing the network packets to memory locations in the first memory page;
create a metadata for each of the network packets, wherein the metadata comprises a reference to the memory location in the first memory page of the corresponding network packet; and
enqueue the metadata for each of the network packets on the selected one of the priority queues.
19. The non-transitory computer-readable medium of claim 18, wherein the instructions further cause the programmable processor to:
dequeue the metadata for each of the network packets from the selected one of the priority queues;
read the network packets from the first memory page based on the reference, in the metadata, to the memory location of the corresponding network packet;
write the network packets to a prefetch buffer; and
free the first memory page from the selected one of the priority queues.
20. The non-transitory computer-readable medium of claim 18, wherein the instructions further cause the programmable processor to:
receive a subsequent network packet; and
assign a second one of the plurality of memory pages to the selected one of the priority queues and store the subsequent network packet to the second memory page.

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 voltage generation circuit, comprising:
a generator circuit adapted to receive a supply voltage and including a reference node, the generator circuit developing an output voltage from the supply voltage and the output voltage having a value that is a function of a reference voltage applied on the reference node;
a coupling circuit coupled to the reference node and adapted to receive the supply voltage, the coupling circuit being operable in response to a voltage control signal to vary an electronic coupling of the supply voltage to the reference node and thereby adjust the value of the reference voltage; and
a voltage sensing circuit coupled to the reference node to receive the reference voltage and coupled to the coupling circuit, the voltage sensing circuit developing the voltage control signal responsive to the reference voltage.
2-30. (Cancelled)