Method and apparatus for microcode loading in a multi-nodal network exhibiting distributed control
First Claim
1. A distributed data processing system including plural, processor-containing nodes interconnected in a network, each node having plural neighbor nodes, a node connected to a neighbor node via a direct link, certain of said nodes coupled to other nodes via intermediate nodes, at least one node of said plural nodes including a copy of functional microcode that enables said one node to fully accomplish assigned data processing tasks, each said node further comprising:
- memory for storing base microcode which enables, on power-up, a processor in said node to manifest partial operational capability, said capability including at least a program load function and a communication capability with neighbor nodes;
first means in said processor, operating in combination with said base microcode, for determining if said memory also stores a copy of said functional microcode, and if yes, executing said functional microcode, said first means in said processor further responsive to a determination that said functional microcode is not present in said memory, to issue a request to download said functional microcode to all neighbor nodes connected by a direct link and to repeat issuing said request to download to only said neighbor nodes connected by a direct link, and not to any node connected thereto via an intermediate node, until a neighbor node responds by downloading said functional microcode or until a further control function causes a cessation of said issuing of said request; and
second means in said processor responsive to a request from a neighbor node connected by a direct link, for downloading said functional microcode if a copy of said microcode is present in said node and to otherwise be non-responsive upon receipt of said request, and to be responsive to a subsequent said request only if said functional microcode exists in memory of the node.
0 Assignments
0 Petitions
Accused Products
Abstract
A distributed data processing system includes plural, processor-containing nodes that are interconnected in a network. Each node has plural neighbor nodes, with neighbor nodes being connected via a direct link. One node includes a copy of functional microcode in addition to base microcode. Each node further includes memory for storing base microcode which enables, on power-up, for a processor in the node to manifest partial operational capability, including program load functions and a communications capability with neighbor nodes. The node'"'"'s processor, in combination with the base microcode, determines if the node'"'"'s memory stores a copy of functional microcode and if yes, causes the functional microcode to be loaded. If it is determined that functional microcode is not present in the nodes memory, the node issues a request to neighbor nodes to download functional code, irrespective of whether the neighbor node'"'"'s are known to include the functional microcode or not. After a time out, the request to download is repeated. Within the network, the node which stores the functional microcode will download that code to its neighbor nodes which, in turn, will download the functional code to their neighbor nodes, etc. thereby enabling, eventually, all nodes in the network to acquire the functional microcode.
-
Citations
5 Claims
-
1. A distributed data processing system including plural, processor-containing nodes interconnected in a network, each node having plural neighbor nodes, a node connected to a neighbor node via a direct link, certain of said nodes coupled to other nodes via intermediate nodes, at least one node of said plural nodes including a copy of functional microcode that enables said one node to fully accomplish assigned data processing tasks, each said node further comprising:
-
memory for storing base microcode which enables, on power-up, a processor in said node to manifest partial operational capability, said capability including at least a program load function and a communication capability with neighbor nodes; first means in said processor, operating in combination with said base microcode, for determining if said memory also stores a copy of said functional microcode, and if yes, executing said functional microcode, said first means in said processor further responsive to a determination that said functional microcode is not present in said memory, to issue a request to download said functional microcode to all neighbor nodes connected by a direct link and to repeat issuing said request to download to only said neighbor nodes connected by a direct link, and not to any node connected thereto via an intermediate node, until a neighbor node responds by downloading said functional microcode or until a further control function causes a cessation of said issuing of said request; and second means in said processor responsive to a request from a neighbor node connected by a direct link, for downloading said functional microcode if a copy of said microcode is present in said node and to otherwise be non-responsive upon receipt of said request, and to be responsive to a subsequent said request only if said functional microcode exists in memory of the node. - View Dependent Claims (2)
-
-
3. A distributed data processing system comprising:
-
plural nodes, each node containing a data processor; data link means interconnecting neighboring nodes so as to enable communications therebetween, certain said plural nodes coupled via plural data link means through an intermediate node or nodes; non-volatile storage means in each node for storing a copy of base microcode, said base microcode enabling a data processor in a node to manifest partial operational capabilities, including program loading functions and a communication function with neighbor nodes; memory means in at least one node, but less than all said plural nodes, for storing functional microcode that enables said at least one node to fully accomplish assigned data processing tasks; and load means in each of said plural nodes in combination with the data processor and base microcode residing in each said node, for determining if a copy of said functional microcode resides in said node and, if not, said load means issuing a request only to neighbor nodes connected by one data link, and not to any node interconnected thereto via an intermediate node, to download said functional microcode, and to continue issuing said request to download said functional microcode until one of said neighbor nodes responds by downloading said functional microcode or until a further control function is enabled, said load means further responsive to a request from a neighbor node connected by a direct link to download said functional microcode if a copy of said microcode is present in said node and to otherwise be non-responsive upon receipt of said request, and to be responsive to a subsequent said request only if said functional microcode exists in memory of the node. - View Dependent Claims (4)
-
-
5. A method for initial program load in nodes of a distributed data processing system, each node having plural neighbor nodes, a node connected to a neighbor node via a direct link, certain of said nodes coupled to other nodes via intermediate nodes, each node performing a method comprising the steps of:
-
responding to a power-up signal to load base microcode from resident read only memory in said node; determining whether functional microcode is present in non-volatile memory in said node and, if yes, loading said functional microcode into random access memory to prepare said node for full data processing action, and if no, issuing a request to neighbor nodes connected by a direct link for a download of said functional microcode; reissuing said request to download said functional microcode only to neighbor nodes connected by a direct link if no download of functional microcode is received within a predetermined time period; and responding to a request from a neighbor node connected by a direct link to download said functional microcode if a copy of said microcode is present in said node and to otherwise be non-responsive upon receipt of said request, and to be responsive to a subsequent said request only if said functional microcode exists in memory of the node.
-
Specification