1460904826-a5843a5c-d9b5-49b3-80d5-e99729287ee1

1. A non-transitory machine readable medium storing a program for harvesting addresses on a first device, the program for execution by at least one processing unit, the program comprising sets of instructions for:
extracting a first plurality of physical addresses from a first set of applications executing on the first device and storing the physical addresses in a data storage of the first device;
receiving a second plurality of physical addresses from a set of devices associated with the first device through a network and storing the physical addresses in the data storage; and
using the stored physical addresses in the data storage to facilitate operations of a second set of applications executing on the device.
2. The non-transitory machine readable medium of claim 1, wherein the program further comprises a set of instructions for sending at least a subset of the first plurality of physical addresses to the set of devices through the network in order to facilitate the operation of applications executing on the set of devices.
3. The non-transitory machine readable medium of claim 1, wherein the physical addresses are addresses harvested from electronic mail (email) messages, text messages, or locations of calendared appointments, and the first set of applications includes at least one of an email program, a text messaging program, and a calendar application.
4-11. (canceled)
12. The non-transitory machine readable medium of claim 1, wherein the program further comprises sets of instructions for:
computing a ranking for each of the physical addresses based on a plurality of factors; and
selecting a particular set of physical addresses to use for a particular application based on the computed ranking.
13. The non-transitory machine readable medium of claim 12, wherein the set of instructions for computing the ranking for a particular physical address comprises a set of instructions for counting a number of times that the particular physical address has been extracted.
14. The non-transitory machine readable medium of claim 12, wherein the set of instructions for computing the ranking for a particular physical address comprises a set of instructions for analyzing the plurality of factors, the plurality of factors including (i) the identity of the particular application from which the particular physical address was extracted, and (ii) determining if the particular physical address had been displayed on the device.
15. (canceled)
16. A non-transitory machine readable medium storing a program for harvesting addresses of a device, the program for execution by at least one processing unit, the program comprising sets of instructions for:
extracting a plurality of physical addresses from a first plurality of applications executing on the device and storing the physical addresses in a data storage of the device; and
using the stored physical addresses in the data storage to facilitate operations of a second plurality of applications.
17-22. (canceled)
23. The non-transitory machine readable medium of claim 3, wherein the electronic mail messages have been viewed by a user of the device.
24-26. (canceled)
27. The non-transitory machine readable medium of claim 16, wherein the set of instructions for using the stored physical addresses comprises sets of instructions for:
predicting at least one future destination of the device based on the stored physical addresses; and
providing an output based on the predicted destination.
28-30. (canceled)
31. The non-transitory machine readable medium of claim 12, wherein the plurality of factors comprises a source of the physical address, an identity of a sender of a message that contains the physical address, or a user’s interaction with the physical address.
32. The non-transitory machine readable medium of claim 12, wherein the plurality of factors are a first set of factors, wherein the program further comprises a set of instructions for decaying the ranking for each of the plurality of physical addresses based on a second set of factors.
33. The non-transitory machine readable medium of claim 32, wherein the second set of factors comprises a time stamp of a particular physical address that stores a time that the physical address was received by its source application and a source identifier identifying the source application of the physical address.
34. The non-transitory machine readable medium of claim 33, wherein the set of instructions for decaying the ranking of the particular physical address comprises a set of instructions for reducing the ranking based on a length of time that has elapsed since a value of the time stamp of the physical address.
35. The non-transitory machine readable medium of claim 16, wherein the program further comprises sets of instructions for:
marking a particular physical address as a bookmark for a mapping application of the device; and
storing the marked physical address in the data storage of the device.
36. The non-transitory machine readable medium of claim 16, wherein the first set of applications includes a mapping application, wherein the program further comprises sets of instructions for:
detecting, within the mapping application, (i) input of a particular physical address, (ii) viewing of a particular physical address on the device, or (iii) searching for a particular physical address; and
storing the physical address in the data storage of the device.
37. A mobile device comprising:
an address harvesting engine for harvesting a plurality of physical addresses from a first plurality of applications on the device;
a data storage for storing the harvested physical addresses; and
a prediction engine for facilitating operations of a second plurality of applications based on the stored harvested physical addresses.
38. The mobile device of claim 37, wherein the address harvesting engine is further for (i) receiving physical addresses from a set of other devices associated with the device through a network, (ii) storing the physical addresses in the data storage of the device, and (iii) using the received physical addresses to facilitate the operation of the second plurality of applications.
39. The mobile device of claim 37 further comprising an interface for receiving user input in a particular application, wherein the prediction engine matches the user input to the plurality of physical addresses in the data storage in order to identify a set of candidate physical addresses and outputs the set of candidate physical addresses for display in the interface of the particular application.
40. The mobile device of claim 37 further comprising a ranking engine for specifying a ranking score for each physical address, wherein the prediction engine is further for selecting a particular set of physical addresses to use for a particular application based on the computed ranking score.
41. The mobile device of claim 37, wherein the first set of applications comprises at least one of an email application, a messaging application, a calendar application, a ticketing application, a web-browsing application, and a mapping application.
42. The mobile device of claim 37, wherein the prediction engine is further for predicting at least one future destination of the device based on the stored physical addresses and providing an output based on the predicted destination.
43. The mobile device of claim 37, wherein the address harvesting engine is further for receiving content from a particular application in the first plurality of applications and performing data detection on the content to detect physical addresses for extraction.
44. The mobile device of claim 43, wherein the content is one of an electronic document, a calendar event, or an electronic ticket.
45. The mobile device of claim 37, wherein the address harvesting engine is further for computing a ranking for each of the plurality of physical addresses based on a plurality of factors, and wherein the prediction engine is further for selecting a particular set of physical addresses to use for a particular application based on the computed ranking.

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-11. (canceled)
12. A dynamic multi-streaming processor comprising:
a packet management component; and
a stream processing component, wherein said stream processing component is configured to operate independently from the packet management component;
wherein the packet management component is configured to manage packets received and processed by the stream processing component concurrent with packet processing by the stream processing component.
13. The processor as recited in claim 12, wherein in managing packets the packet management component is configured to:
manage memory allocation for packet storage;
upload packet header information from incoming packets into different contexts; and
maintain packet identifiers of packets currently in process.
14. The processor as recited in claim 12, further comprising circuitry configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing memory allocations and de-allocations associated with enqueueing and dequeuing data packets.
15. The processor as recited in claim 12, further comprising circuitry configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing.
16. The processor as recited in claim 15, wherein the portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing includes instructions for gathering information from memory for loading into a context, distributing information from a context into memory, selecting and accessing at least one addition function, and for selecting and accessing at least one subtraction function.
17. The processor as recited in claim 12, further comprising circuitry configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing the use of multiple contexts dedicated to the processing of a single data packet.
18. The processor as recited in claim 17, wherein the portion for managing the use of multiple contexts includes an instruction for forcing nonuse of a context for a predefined period of time.
19. A method for use in a dynamic multi-streaming processor comprising a packet management component, and a stream processing component, wherein the stream processing component is configured to operate independently from the packet management component, the method comprising:
receiving packets for processing by the stream processing component; and
managing in the packet management component the received packets and packets being processed by the stream processing component concurrent with packet processing by the stream processing component.
20. The method as recited in claim 19, wherein in managing packets the method comprises:
managing memory allocation for packet storage;
uploading packet header information from incoming packets into different contexts; and
maintaining packet identifiers of packets currently in process.
21. The method as recited in claim 20, further comprising executing instructions of an instruction set that enable interaction between the packet management component and the stream processing component, said instruction set including a portion for managing memory allocations and de-allocations associated with enqueueing and dequeuing data packets.
22. The method as recited in claim 20, further comprising executing instructions of an instruction set that enable interaction between the packet management component and the stream processing component, said instruction set including a portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing.
23. The method as recited in claim 22, wherein the portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing includes instructions for gathering information from memory for loading into a context, distributing information from a context into memory, selecting and accessing at least one addition function, and for selecting and accessing at least one subtraction function.
24. The method as recited in claim 20, further comprising executing instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing the use of multiple contexts dedicated to the processing of a single data packet.
25. The method as recited in claim 24, wherein the portion for managing the use of multiple contexts includes an instruction for forcing nonuse of a context for a predefined period of time.
26. A system comprising:
an interface configured to transmit and receive packets;
an external packet memory; and
a dynamic multi-streaming processor coupled to the interface and the external memory, the processor comprising:
a packet management component; and
a stream processing component, wherein said stream processing component is configured to operate independently from the packet management component;
wherein the packet management component is configured to manage packets received and processed by the stream processing component concurrent with packet processing by the stream processing component.
27. The system as recited in claim 26, wherein in managing packets, the packet management component is configured to:
manage memory allocation for packet storage;
upload packet header information from incoming packets into different contexts; and
maintain packet identifiers of packets currently in process.
28. The system as recited in claim 27, wherein the packet management component further comprises a local packet memory, and wherein the packet management component is configured to utilize both the local packet memory and the external packet memory for storage of packet data.
29. The system as recited in claim 27, wherein the processor is further configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing memory allocations and de-allocations associated with enqueueing and dequeuing data packets.
30. The system as recited in claim 27, wherein the processor is further configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing.
31. The system as recited in claim 30, wherein the portion for managing selection and utilization of one or more arithmetic functions and other context memory functions associated with data packet processing includes instructions for gathering information from memory for loading into a context, distributing information from a context into memory, selecting and accessing at least one addition function, and for selecting and accessing at least one subtraction function.
32. The system as recited in claim 27, wherein the processor is further configured to execute instructions of an instruction set that enables interaction between the packet management component and the stream processing component, said instruction set including a portion for managing the use of multiple contexts dedicated to the processing of a single data packet.
33. The system as recited in claim 32, wherein the portion for managing the use of multiple contexts includes an instruction for forcing nonuse of a context for a predefined period of time.