1460771131-e403ceea-d890-4fd5-bbd6-58d461f33ec8

What is claimed is:

1. A method, in a client, for managing connections to a server in a distributed environment, comprising:
establishing a connection to a server;
responsive to conclusion of a communication process using the connection, starting a timer;
maintaining a normal reference to a connection object for the connection;
responsive to conclusion of a predetermined time period measured by the timer, maintaining a weak reference to the connection object; and
periodically destroying connection objects maintained by weak references.
2. The method of claim 1, further comprising:
determining whether a normal reference to the connection object exists; and
reusing the connection if the normal reference exists.
3. The method of claim 2, further comprising restarting the timer.
4. The method of claim 1, further comprising:
determining whether a weak reference to the connection object exists;
determining whether the connection object has been destroyed if the weak reference exists; and
reusing the connection if the connection object has not been destroyed.
5. The method of claim 4, further comprising restarting the timer.
6. The method of claim 4, further comprising:
establishing a new connection if the connection object has been destroyed.
7. The method of claim 1, further comprising:
sending notification to the server that the connection object is unreferenced when a weak reference to the connection object is maintained.
8. The method of claim 1, wherein the step of periodically destroying connection objects maintained by weak references comprises destroying the connection object in response to garbage collection by the server.
9. The method of claim 1, wherein the client is a client Java Virtual Machine.
10. The method of claim 9, wherein the server is a server Java Virtual Machine.
11. The method of claim 10, wherein the client Java Virtual Machine and the server Java virtual Machine reside on the same host machine.
12. The method of claim 10, wherein the server Java virtual Machine resides on a host machine that is remote from the machine on which the client Java Virtual Machine resides.
13. A method, in a client, for reusing a connection to a server, comprising:
identifying a weak reference to a connection object for a connection to a server;
determining whether the connection object has been destroyed; and
reusing the connection if the connection object has not been destroyed.
14. The method of claim 13, further comprising:
responsive to garbage collection by the server, destroying the connection object.
15. The method of claim 13, further comprising:
establishing a new connection if the connection object has been destroyed.
16. The method of claim 13, wherein the connection object is a Java object.
17. The method of claim 16, wherein the Java object is a remote method invocation object.
18. A method, in a client, for caching connections to a server, comprising:
adding a reference to a connection object for a connection to a weak hash map and a hash map;
responsive to conclusion of a communication process using the connection, starting a timer; and
responsive to conclusion of a predetermined time period measured by the timer, removing the reference to the connection object from the hash map.
19. The method of claim 18, further comprising:
determining whether the connection object has been destroyed; and
removing the reference to the connection object from the weak hash map if the connection object has been destroyed.
20. An apparatus, in a client, for managing connections to a server in a distributed environment, comprising:
connection means for establishing a connection to a server;
timer means for starting a timer responsive to conclusion of a communication process using the connection;
normal reference means for maintaining a normal reference to a connection object for the connection;
weak reference means for maintaining a weak reference to the connection object responsive to conclusion of a predetermined time period measured by the timer; and
garbage collection means for periodically destroying connection objects maintained by weak references.
21. The apparatus of claim 20, further comprising:
means for determining whether a normal reference to the connection object exists; and
means for reusing the connection if the normal reference exists.
22. The apparatus of claim 21, further comprising means for restarting the timer.
23. The apparatus of claim 20, further comprising:
means for determining whether a weak reference to the connection object exists;
means for determining whether the connection object has been destroyed if the weak reference exists; and
means for reusing the connection if the connection object has not been destroyed.
24. The apparatus of claim 23, further comprising means for restarting the timer.
25. The apparatus of claim 23, further comprising:
means for establishing a new connection if the connection object has been destroyed.
26. The apparatus of claim 20, further comprising:
means for sending notification to the server that the connection object is unreferenced when a weak reference to the connection object is maintained.
27. The apparatus of claim 20, wherein the client is a client Java Virtual Machine.
28. The apparatus of claim 27, wherein the server is a server Java Virtual Machine.
29. The apparatus of claim 28, wherein the client Java Virtual Machine and the server Java virtual Machine reside on the same host machine.
30. The apparatus of claim 28, wherein the server Java virtual Machine resides on a host machine that is remote from the machine on which the client Java Virtual Machine resides.
31. An apparatus, in a client, for reusing a connection to a server, comprising:
identification means for identifying a weak reference to a connection object for a connection to a server;
determination means for determining whether the connection object has been destroyed; and
connection means for reusing the connection if the connection object has not been destroyed.
32. The apparatus of claim 31, further comprising:
garbage collection means for destroying the connection object responsive to garbage collection by the server.
33. The apparatus of claim 31, further comprising:
means for establishing a new connection if the connection object has been destroyed.
34. The apparatus of claim 31, wherein the connection object is a Java object.
35. The apparatus of claim 34, wherein the Java object is a remote method invocation object.
36. An apparatus, in a client, for caching connections to a server, comprising:
reference means for adding a reference to a connection object for a connection to a weak hash map and to a hash map;
timer means for starting a timer responsive to conclusion of a communication process using the connection; and
removal means for removing the reference to the connection object from the hash map responsive to conclusion of a predetermined time period measured by the timer.
37. The apparatus of claim 36, further comprising:
means for determining whether the connection object has been destroyed; and
means for removing the reference to the connection object from the weak hash map if the connection object has been destroyed.
38. A computer program product, in a computer readable medium, for managing connections in a distributed environment, comprising:
instructions for establishing a connection;
instructions for starting a timer responsive to conclusion of a communication process using the connection;
instructions for maintaining a normal reference to a connection object for the connection;
instructions for maintaining a weak reference to the connection object responsive to conclusion of a predetermined time period measured by the timer; and
instructions for periodically destroying connection objects maintained by weak references.
39. A computer program product, in a computer readable medium, for reusing a connection to a server, comprising:
instructions for identifying a weak reference to a connection object for a connection;
instructions for determining whether the connection object has been destroyed; and
instructions for reusing the connection if the connection object has not been destroyed.
40. A computer program product, in a computer readable medium, for caching connections to a server, comprising:
instructions for adding a reference to a connection object for a connection to a weak hash map and a hash map;
instructions for starting a timer responsive to conclusion of a communication process using the connection; and
instructions for removing the reference to the connection object from the hash map responsive to conclusion of a predetermined time period measured by the timer.

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 for executing instructions on a processor core implemented with a source operand collector cache coupled to at least one input of a data path residing within the processor core, the method comprising:
decoding an instruction to determine a plurality of operands specified by the instruction;
for each operand in the plurality of operands, determining that the operand is not stored in the source operand collector cache, loading the operand into the source operand collector cache from a local register file; and
configuring the processor core to execute the instruction across the operands stored in the source operand collector cache.
2. The method of claim 1, further comprising, upon loading the operand into the source operand collector cache, updating a cache table to associate a register index corresponding with the operand with a storage element in the source operand collector cache.
3. The method of claim 2, further comprising:
determining that the processor core has written a value to a register in the local register file; and
in response to determining that the value has been written to the register, updating the cache table to remove any entries associated with the register.
4. The method of claim 1, wherein the local register file comprises a plurality of register banks.
5. The method of claim 4, further comprising configuring a crossbar to couple a register in a first register bank in the plurality of register banks to a first storage element in the source operand collector cache.
6. The method of claim 5, wherein the crossbar is configured to couple only a single register from each register bank in the plurality of register banks to the source operand collector cache during each clock cycle.
7. The method of claim 1, wherein the source operand collector cache is sized to concurrently store the plurality of operands specified by the instruction and a plurality of operands specified by another decoded instruction.
8. A parallel processing unit, comprising:
a processor core including a data path for executing instructions;
a source operand collector cache coupled to at least one input of the data path;
a local register file coupled to the source operand collector cache; and
a scheduling unit configured to:
decode an instruction to determine a plurality of operands specified by the instruction,
for each operand in the plurality of operands, determining that the operand is not stored in the source operand collector cache, load the operand into the source operand collector cache from the local register file, and
configure the processor core to execute the instruction across the operands stored in the source operand collector cache.
9. The parallel processing unit of claim 8, further comprising a cache table, and wherein, upon loading the operand into the source operand collector cache, the scheduling unit is further configured to update the cache table to associate a register index corresponding with the operand with a storage element in the source operand collector cache.
10. The parallel processing unit of claim 8, wherein the local register file comprises a plurality of register banks.
11. The parallel processing unit of claim 10, further comprising a crossbar configured to couple a register in a first register bank in the plurality of register banks to a first storage element in the source operand collector cache.
12. The parallel processing unit of claim 11, wherein the crossbar is configured to couple only a single register from each register bank in the plurality of register banks to the source operand collector cache during each clock cycle.
13. The parallel processing unit of claim 8, wherein the source operand collector cache is sized to concurrently store the plurality of operands specified by the instruction and a plurality of operands specified by another decoded instruction.
14. A computer system, comprising:
a memory; and
a parallel processing unit coupled to the memory and including:
a processor core including a data path for executing instructions;
a source operand collector cache coupled to at least one input of the data path;
a local register file coupled to the source operand collector cache; and
a scheduling unit configured to:
decode an instruction to determine a plurality of operands specified by the instruction,
for each operand in the plurality of operands, determining that the operand is not stored in the source operand collector cache, load the operand into the source operand collector cache from the local register file, and
configure the processor core to execute the instruction across the operands stored in the source operand collector cache.
15. The computer system of claim 14, further comprising a cache table, and wherein, upon loading the operand into the source operand collector cache, the scheduling unit is further configured to update the cache table to associate a register index corresponding with the operand with a storage element in the source operand collector cache.
16. The computer system of claim 14, wherein the local register file comprises a plurality of register banks.
17. The computer system of claim 16, further comprising a crossbar configured to couple a register in a first register bank in the plurality of register banks to a first storage element in the source operand collector cache.
18. The computer system of claim 17, wherein the crossbar is configured to couple only a single register from each register bank in the plurality of register banks to the source operand collector cache during each clock cycle.
19. The computer system of claim 14, wherein the source operand collector cache is sized to concurrently store the plurality of operands specified by the instruction and a plurality of operands specified by another decoded instruction.