1460707075-9056e9ea-bd74-4fd6-8a30-c13f1954bc4b

1. A method performed by a controller that monitors andor controls an apparatus, the method comprising:
polling a server by sending a message to the server periodically, the message containing information that distinguishes the apparatus from other like apparatuses, the message for establishing a connection between the server and the controller through which the instructions are sent;
receiving, from the server and in response to the message, one or more of plural instructions that are supported by the controller; and
using one or more of the instructions to affect at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;

wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
2. The method of claim 1, wherein the message comprises an operational parameter for the apparatus and at least one of the instructions comprises an updated value for the operational parameter.
3. The method of claim 2, wherein the message comprises plural operational parameters for the apparatus and at least one of the instructions comprises updated values that differ from current values of the operational parameters.
4. The method of claim 1, wherein at least one of the instructions comprises a list of operations to be performed by the controller; and
using one or more of the instructions comprises:
parsing the operations from the list; and
performing the operations from the list.
5. The method of claim 1, wherein at least one of the instructions comprises a configuration file for the apparatus.
6. The method of claim 1, wherein the message identifies the apparatus by a type andor one or more of a serial number and a universal unique identifier.
7. The method of claim 1, wherein the message comprises a hypertext transfer protocol (HTTP) message.
8. The method of claim 7, wherein the message comprises an HTTP command that contains Extensible Markup Language code.
9. The method of claim 1, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
10. A method performed by a server for sending instructions over a network to a controller that monitors andor controls an apparatus, the method comprising:
receiving a message from the controller periodically, the message containing information that distinguishes the apparatus from other like apparatuses, the message for establishing a connection between the server and the controller through which instructions are sent;
identifying the apparatus from the information in the message;
retrieving one or more instructions that are specific to the apparatus, the one or more instructions comprising one or more of plural instructions that are supported by the controller; and
sending the one or more instructions from the server to the controller, the one or more instructions for affecting at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;

wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
11. The method of claim 10, wherein:
the information in the message comprises a type andor one or more of a serial number and a universal unique identifier; and
the apparatus is identified based on the type andor one or more of the serial number and the universal unique identifier.
12. The method of claim 11, further comprising:
parsing the type and one or more of the serial number and universal unique identifier from the message prior to identifying the apparatus.
13. The method of claim 10, wherein:
the message comprises an operational parameter for the device; and
the one or more instructions comprises an updated value of the operational parameter.
14. The method of claim 10, wherein the one or more instructions comprises a list of operations to be performed by the apparatus.
15. The method of claim 10, wherein the one or more instructions comprises a configuration file for the apparatus.
16. The method of claim 10, further comprising:
receiving data specific to the apparatus; and
storing the data in memory as part of the plural instructions;
wherein the one or more instructions are retrieved from the memory.
17. The method of claim 16, wherein the data specific to the apparatus is received via a Web page generated by the server.
18. The method of claim 10, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
19. The method of claim 10, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
20. A system comprising:
a controller that monitors andor controls an apparatus, the controller being capable of communicating over a computer network; and
a server that is capable of communicating over the computer network;
wherein (A) the controller polls the server periodically by sending a message to the server over the computer network, the message for establishing a connection between the server and the controller through which the instructions are sent, the message containing information that distinguishes the apparatus from other like apparatuses; and, in response to the message, (B) the server (i) identifies the apparatus based on the information in the message, (ii) retrieves one or more of plural instructions that are supported by the controller, and (iii) sends the one or more instructions to the controller over the computer network, the one or more instructions for affecting at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;

wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
21. The system of claim 20, wherein the server cannot initiate communication to the controller because the controller is not addressable from the computer network.
22. The system of claim 20, wherein the computer network comprises the Internet.
23. The system of claim 20, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
24. The system of claim 20, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
25. A computer program stored on one or more machine-readable media, the computer program being executable by a controller that monitors andor controls an apparatus, the computer program comprising code to cause the controller to:
poll a server by sending a message to the server periodically, the message containing information that distinguishes the apparatus from other like apparatuses, the message for establishing a connection between the server and the controller through which the instructions are sent;
receive, from the server and in response to the message, one or more of plural instructions that are supported by the controller; and
use one or more of the instructions to affect at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;

wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
26. The computer program of claim 25, wherein the message comprises an operational parameter for the apparatus and at least one of the instructions comprises an updated value for the operational parameter.
27. The computer program of claim 26, wherein the message comprises plural operational parameters for the apparatus and at least one of the instructions comprises updated values that differ from current values of the operational parameters.
28. The computer program of claim 25, wherein at least one of the instructions comprises a list of operations to be performed by the controller; and
wherein using at least one of the instructions comprises:
parsing the operations from the list; and
performing the operations from the list.
29. The computer program of claim 25, wherein at least one of the instructions comprises a configuration file for the apparatus.
30. The computer program of claim 25, wherein the information in the message identifies the apparatus by a type andor one or more of a serial number and a universal unique identifier.
31. The computer program of claim 25, wherein the message comprises a hypertext transfer protocol (HTTP) message.
32. The computer program of claim 25, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
33. The computer program of claim 25, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
34. A computer program stored on one or more machine-readable media, the computer program being executable by a server to send instructions over a network to a controller that monitors andor controls an apparatus, the computer program comprising code to cause the server to:
receive a message from the controller periodically, the message containing information that distinguishes the apparatus from other like apparatuses, the message for establishing a connection between the server and the controller through which instructions are sent;
identify the apparatus from the information in the message;
retrieve one or more instructions that are specific to the apparatus, the one or more instructions comprising one or more of plural instructions that are supported by the controller; and
send the one or more instructions to the controller, the one or more instructions for affecting at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;

wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
35. The computer program of claim 34, wherein:
the information in the message comprises a type andor one or more of a serial number and a universal unique identifier; and
the apparatus is identified based on the type andor one or more of the serial number and the universal unique identifier.
36. The computer program of claim 35, further comprising code to cause the server to:
parse the type and one or more of the serial number and universal unique identifier from the message prior to identifying the apparatus.
37. The computer program of claim 34, wherein:
the message comprises an operational parameter for the apparatus; and
the one or more instructions comprises an updated value of the operational parameter.
38. The computer program of claim 34, wherein the one or more instructions comprises a list of operations to be performed by the apparatus.
39. The computer program of claim 34, wherein the one or more instructions comprises a configuration file for the apparatus.
40. The computer program of claim 34, further comprising code to cause the server to:
receive the data specific to the apparatus; and
store the data in memory as part of the plural instructions;
wherein the one or more instructions are retrieved from the memory.
41. The computer program of claim 40, wherein the data specific to the apparatus is received via a Web page generated by the server.
42. The computer program of claim 34, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
43. The computer program of claim 34, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
44. A device to monitor andor control an apparatus, the device comprising:
a controller which is configured to execute code to:
poll a server by sending a message to the server periodically, the message containing information that distinguishes the apparatus from other like apparatuses, the message for establishing a connection between the server and the controller through which the instructions are sent;
receive, from the server and in response to the message, one or more of plural instructions that are supported by the controller; and
use one or more of the instructions to affect at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the controller in response to an instruction that is configured to affect the operation of the controller;
wherein, due to network addressing, the server cannot initiate communication to the controller to send instructions to the controller.
45. The device of claim 44, wherein the message comprises an operational parameter for the apparatus and at least one of the instructions comprises an updated value for the operational parameter.
46. The device of claim 45, wherein the message comprises plural operational parameters for the apparatus and at least one of the instructions comprises updated values that differ from current values of the operational parameters.
47. The device of claim 44, wherein at least one of the instructions comprises a list of operations to be performed by the controller; and
wherein using at least one of the instructions comprises:
parsing the operations from the list; and
performing the operations from the list.
48. The device of claim 44, wherein at least one of the instructions comprises a configuration file for the apparatus.
49. The device of claim 44, wherein the information in the message identifies the apparatus by a type andor one or more of a serial number and a universal unique identifier.
50. The device of claim 44, wherein the message comprises a hypertext transfer protocol (HTTP) message.
51. The device of claim 44, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
52. The device of claim 44, wherein the server cannot initiate communication because the controller has a network address that the server cannot resolve.
53. A device for sending data over a network to a remote controller that monitors andor controls an apparatus, the device comprising:
a local controller configured to execute code to:
identify the apparatus from the information in the message;
retrieve one or more instructions that are specific to the apparatus, the one or more instructions comprising one or more of plural instructions that are supported by the remote controller; and
send the one or more instructions to the remote controller, the one or more instructions for affecting at least one of:
a configuration of the apparatus in response to an instruction that is configured to affect the configuration of the apparatus,
an operation of the apparatus in response to an instruction that is configured to affect the operation of the apparatus, and
an operation of the remote controller in response to an instruction that is configured to affect the operation of the controller;
wherein, due to network addressing, the local controller cannot initiate communication to the remote controller to send instructions to the controller.
54. The device of claim 53, wherein:
the information in the message comprises a type andor one or more of a serial number and a universal unique identifier; and
the apparatus is identified based on the type andor one or more of the serial number and the universal unique identifier.
55. The device of claim 54, wherein the local controller executes code to:
parse the type and one or more of the serial number and universal unique identifier from the command prior to identifying the apparatus.
56. The device of claim 53, wherein:
the message comprises an operational parameter for the apparatus; and
the one or more instructions comprises an updated value of the operational parameter.
57. The device of claim 53, wherein the one or more instructions comprises a list of operations to be performed by the apparatus.
58. The device of claim 53, wherein the one or more instructions comprises a configuration file for the apparatus.
59. The device of claim 53, wherein:
the local controller executes code to:
receive data specific to the apparatus; and

store the data in memory as part of the plural instructions.
60. The device of claim 59, wherein the data specific to the apparatus is received via a Web page generated by the device.
61. The device of claim 53, wherein the message comprises a hypertext transfer protocol (HTTP) command that contains Extensible Markup Language (XML) code.
62. The device of claim 53, wherein the local controller cannot initiate communication because the remote controller has a network address that the local controller cannot resolve.
63. A method performed by a controller that monitors andor controls an apparatus, the method comprising:
polling a server for messages periodically, wherein polling comprises initiating communication with the server by sending a first message to the server, the first message for identifying the apparatus and for establishing a connection between the server and the controller through which the instructions are sent;
receiving a first reply message from the server in response to the first message, the first reply message identifying a parameter;
sending a second message to the server in response to the first reply message, the second message containing the parameter identified in the first reply message;
receiving a second reply message containing an updated version of the parameter; and
using the updated version of the parameter to affect at least one of:
a configuration of the apparatus if the parameter relates to the configuration of the apparatus,
an operation of the apparatus if the parameter relates to operation of the apparatus, and
an operation of the controller if the parameter relates to operation of the controller;

wherein the server cannot initiate communication to the controller because the server cannot resolve a network address of the controller.
64. The method of claim 63, further comprising adjusting a time interval at which polling the server takes place.
65. The method of claim 63, wherein the server cannot resolve a network address of the controller because the server and the controller are on different networks.
66. The method of claim 63, wherein the first message and the second message comprise Hypertext Transfer Protocol commands.
67. A computer program stored on one or more machine-readable media, the computer program comprising code that is executable by a controller configured to monitor andor control an apparatus, the code causing the controller to:
poll a server for messages periodically, wherein polling comprises initiating communication with the server by sending a first message to the server, the first message for identifying the apparatus and for establishing a connection between the server and the controller through which the instructions are sent;
receive a first reply message from the server in response to the first message, the first reply message identifying a parameter;
send a second message to the server in response to the first reply message, the second message containing the parameter identified in the first reply message;
receive a second reply message containing an updated version of the parameter; and
use the updated version of the parameter to affect at least one of:
a configuration of the apparatus if the parameter relates to the configuration of the apparatus,
an operation of the apparatus if the parameter relates to operation of the apparatus, and
an operation of the controller if the parameter relates to operation of the controller;

wherein the server cannot initiate communication to the controller because the server cannot resolve a network address of the controller.
68. The computer program of claim 67, further comprising code to cause the controller to adjust a time interval at which polling the server takes place.
69. The computer program of claim 67, wherein the server cannot resolve a network address of the controller because the server and the controller are on different networks.
70. The computer program of claim 67, wherein the first message and the second message comprise Hypertext Transfer Protocol commands.
71. A device comprising:
a controller that monitors andor controls an apparatus, the controller executing code to:
poll a server for messages periodically, wherein polling comprises initiating communication with the server by sending a first message to the server, the first message for identifying the apparatus and for establishing a connection between the server and the controller through which the instructions are sent;
receive a first reply message from the server in response to the first message, the first reply message identifying a parameter;
send a second message to the server in response to the first reply message, the second message containing the parameter identified in the first reply message;
receive a second reply message containing an updated version of the parameter; and
use the updated version of the parameter to affect at least one of:
a configuration of the apparatus if the parameter relates to the configuration of the apparatus,
an operation of the apparatus if the parameter relates to operation of the apparatus, and
an operation of the controller if the parameter relates to operation of the controller;
wherein the server cannot initiate communication to the controller because the server cannot resolve a network address of the controller.
72. The device of claim 71, wherein the controller executes code to adjust a time interval at which polling the server takes place.
73. The device of claim 71, wherein the server cannot resolve a network address of the controller because the server and the controller are on different networks.
74. The device of claim 71, wherein the first message and the second message comprise Hypertext Transfer Protocol commands.

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 controlling hit determination of a shared cache memory in a multiprocessor system that includes a plurality of processors, said shared cache memory being a multiple-way set-associative cache memory that contains a directory and a data array, said multiprocessor system being partitioned such that said plurality of processors each operate as independent systems, the method comprising:
allocating ways of said shared cache memory to respective partitions of said multiprocessor system, said shared cache memory not including an indication of said partitions, wherein said multiprocessor system allocates a region dedicated to respective partitions and a region common to said partitions; and
determining hits of only said ways that have been allocated to said partition, by, after determining one set, selecting either the region dedicated to respective partitions or the region common to said partitions from the ways in said set, said determined set being unchanged even when the selection of a partition is changed each time the cache is accessed.
2. A method according to claim 1, wherein said partitioning is performed in units of operating systems (OS), wherein said operating system for each partition allocates a region dedicated to respective partitions and a region common to respective partitions to said shared memory.
3. A method according to claim 1, wherein said partitioning is carried out in units of processes.
4. A method according to claim 1, wherein:
when a miss occurs in said hit determination, said directory and said data array are updated for said way that has been rewritten earliest of said ways that have been allocated in accordance with active signals in said set.
5. A method according to claim 1 further comprising providing one or more active signals indicating the partitions, wherein said active signals are partition numbers of said partitions that have been partitioned, and said partition numbers are included in said active signals at the time of access from the region dedicated to respective partitions.
6. A method according to claim 1 further comprising providing one or more active signals indicating the partitions, wherein, when said active signals indicate a non-partitioned state, all said ways in said set become the object of hit determination, and information indicating that there are no partition numbers included in said active signals at the time of access from the region common to said partitions.
7. A method according to claim 1 further comprising providing one or more active signals indicating a partition when said partition accesses the shared cache memory.
8. A method according to claim 7, wherein said one or more active signals bypasses said shared cache memory.
9. A method according to claim 1 further comprising providing an active signal indicative of a partitioned or non-partitioned state.
10. A multiprocessor system comprising:
a plurality of processors sharing a multiple-way set-associative cache memory that comprises a directory and a data array, said multiprocessor system being partitioned such that said plurality of processors operating as independent systems; and
a circuit for determining hits of only said ways that have been allocated to said partitions wherein said shared cache memory do not include an indication of said partition, by, after determining one set, selecting either a region dedicated to respective partitions or a region common to said partitions from the ways in said set, said determined set being unchanged even when the selection of a partition is changed each time the cache is accessed.
11. A multiprocessor system according to claim 10, wherein said partitioning is carried out in units of operating systems (OS).
12. A multiprocessor system according to claim 10, wherein said partitioning is carried out in units of processes.
13. A multiprocessor system according to claim 10, further comprising:
a replacement control circuit that, when a miss occurs in said hit determination, updates said directory and said data array for said way that has been rewritten earliest of said ways that have been allocated in accordance with active signals in said set.
14. A multiprocessor system according to claim 10, wherein said ways have been allocated to said partitions in accordance with active signals, and said active signals are partition numbers of said partitions that have been partitioned.
15. A multiprocessor system according to claim 10 further comprising active signals, wherein said comparison circuit takes as object of hit determination all said ways in said set when said active signals indicate a non-partitioned state.
16. A method according to claim 10, wherein said circuit receives active signals that are provided when respective partitions access the shared cache memory and are indicative of the respective partitions.
17. A method according to claim 16, wherein said active signals bypass the shared cache memory.
18. A multiprocessor system according to claim 10 further comprising an active signal indicative of a partitioned or non-partitioned state.
19. A method of controlling hit determination of a shared cache memory in a multiprocessor system comprising a plurality of processors, said plurality of processors sharing a multiple-way set-associative cache memory that contains a directory and a data array, said multiprocessor system being partitioned into a plurality of partitions such that said plurality of processors each operate as independent systems, the method comprising:
allocating one or more ways of said shared cache memory to at least one of said plurality of partitions in advance of use of said shared cache memory wherein said multiprocessor system allocates a region dedicated to respective partitions and a region common to said partitions;
generating an active signal when a particular partition accesses said shared cache memory, said active signal indicating said particular partition and bypassing the cache memory; and
determining hits of only said ways that have been allocated to said particular partition indicated by said signal by selecting either a region dedicated to respective partitions or a region common to said partitions from the ways in said set, said determined set being unchanged even when the selection of a partition is changed each time the cache is accessed.
20. A method according to claim 19, wherein the active signal is indicative of a partitioned or non-partitioned state.