USRE41293EExpiredUtilityPatentIndex 60
Multiprocessor computer having configurable hardware system domains
Est. expiryDec 12, 2016(expired)· nominal 20-yr term from priority
G06F 15/17375
60
PatentIndex Score
5
Cited by
9
References
64
Claims
Abstract
Global address and data routers interconnect individual system units each having its own processors, memory, and I/O. A domain filter coupled to the routers dynamically defines groups of system units as domains and clusters of domains which have both software and hardware isolation from each other. Clusters can share dynamically definable ranges of memory with each other. The domain filter has software-loadable registers on the system units and in the global routers to set the parameters of the domains and clusters. The registers label individual inter-system transactions on the routers as invalid for system units not in the same domain or cluster as the originating unit.
Claims
exact text as granted — not AI-modified1. A multiprocessor computer having hardware domains variable variably configurable by commands from an operator, said computer comprising:
a plurality of separate system units for performing sequences of transactions, each said system unit being individually physically removable and replaceable within said computer, and each including at least one of:
a processor unit for generating addresses within a predetermined global range. ,
a memory unit for storing data at a set of addresses within said predetermined global range, and
an input/output adapter for generating and/or receiving a set of addresses within said predetermined global range: ;
a global address router coupled to said system units for transferring addresses generated in any of said system units to others of said system units;
a global data router for transferring data from any of said system units to others of said system units: ;
a control-signal distributor for communicating a plurality of control signals from any of said system units to others of said system units for affecting the operation of all of said system units in response to conditions occurring in said any system unit: ;
a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer: ;
a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains: ;
a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain, wherein said domain filter is coupled to at least one of said global routers for inhibiting transactions on said one global router originating in those of said system units within one of said domains from being received in certain of said system units outside said one domain.
2. A computer according to claim 1 , wherein said one global router is said global address router.
3. A computer according to claim 2 , wherein said global address router has multiple paths coupled to all of said system units for carrying a plurality of transactions between different subsets of said system units simultaneously.
4. A computer according to claim 1 , wherein said one global router is said global data router.
5. A computer according to claim 4 , wherein said global data router has multiple paths coupled to all of said system units for carrying data associated with a plurality of transactions between different subsets of said system units simultaneously.
6. A computer according to claim 1 , wherein said domain filter is coupled both to said global address router and to said global data router for inhibiting both addresses and data originating in those of said system units within one of said domains from being received in certain of said system units outside of said one domain.
7. A computer according to claim 1 , wherein said domain filter includes:
a connection for identifying which of said system units has generated a current address in said address router;
at least one domain-mask register for each of said system units specifying which of said system units belong to which of said domains,
gating logic responsive to said source-identifying connection and to said domain-mask register for decoupling said system unit from all of said system units not in the same domain as said system unit having generated said current address.
8. A computer according to claim 7 , wherein said domain filter includes
a plurality of cluster registers each identifying which of said system units belong to a domain cluster, and responsive to a current one of said transactions;
a connection for transmitting a valid-transaction signal to each of said system units in said common cluster for any of said transactions originating from one of said system units belonging to said domain cluster.
9. A computer according to claim 8 , wherein said domain filter includes a shared-address register indicative of a range of shared addresses among different system units within said domain cluster.
10. A multiprocessor computer having hardware domains variably configurable by commands from an operator, said computer comprising:
a plurality of separate system units for performing sequences of transactions, each said system unit being individually physically removable and replaceable within said computer, and each including at least one of:
a processor unit for generating addresses within a predetermined global range. ,
a memory unit for storing data at a set of addresses within said predetermined global range. , and
an input/output adapter for generating and/or receiving a set of addresses within said predetermined global range: ;
a global address router coupled to said system units for transferring addresses generated in any of said system units to others of said system units: ;
a global data router for transferring data from any of said system units to others of said system units: ;
a control-signal distributor for communicating a plurality of control signals from any of said system units to others of said system units for affecting the operation of all of said system units in response to conditions occurring in said any system unit: ;
a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer, said domain configurator further combining a plurality of said hardware domains into a domain cluster comprising an arbitrary subset of said domains independently of any physical reconnection of said system units within said computer;
a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains, said computer controller being responsive to further ones of said commands for specifying to said domain configurator which of said system units belong to said domain cluster;
a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain, said domain filter permitting said at least some control signals originating in those of said system units within said one domain to affect those of said systems units outside said one domain but within said domain cluster.
11. A computer according to claim 10 , wherein one of said domains within said domain cluster includes physical memory accessible within the same predetermined shared address range by a different domain within said domain cluster.
12. A method of partitioning a computer having a plurality of system units, a global address router, a global data router, a control-signal distributor, and a domain filter into a plurality of independent hardware domains under programmable control, comprising:
(a) starting a configuration modes;
(b) receiving specification data defining a subset of said system units for inclusion within one of said hardware domains: ;
(c) loading said specification data into a domain filter so as to render those of said system units within said one domain responsive to certain control signals in said distributor, and to render others of said system units unresponsive to said distributor: ;
(d) repeating steps (b) and (c) for further specification data defining a different subset of said system units. ;
wherein step (c) is also responsive to said specification data for loading said domain filter so as to render those of said system units within said one domain responsive to addresses on said global address router originating from those of said system units within said one domain, and to render said system units within said first domain unresponsive to addresses on said global address router originating from at least some of those of said system units not within said first domain.
13. A method according to claim 12 , comprising the further steps of:
(f) receiving second specification data defining a cluster of multiple ones of said domains;
(g) loading said second data into said domain filter so as to render those of said system units within said cluster of domains responsive to addresses on said global address router originating from those of said system units within said cluster of domains.
14. A method according to claim 13 , comprising the further steps of:
(h) receiving third specification data defining a shared range of addresses physically present within one of said domains, and accessible to other domains within said cluster of domains;
(i) loading said third data into said domain filter so as to render those of said system units within said cluster of domains responsive to addresses on said global address router originating from those of said system units within said cluster of domains but only within said shared range.
15. A method according to claim 14 , wherein said shared range is less than the total range of addresses of memory physically present on at least one of those system units within said domain cluster.
16. A method of partitioning a computer having a plurality of system units, a global address router, a global data router, a control-signal distributor, and a domain filter into a plurality to independent hardware domains under programmable control, comprising:
(a) starting a configuration mode;
(b) receiving specification data defining a subset of said system units for inclusion within one of said hardware domains;
(c) loading said specification data into a domain filter so as to render those of said system units within said one domain responsive to certain control signals in said distributor, and to render others of said system units unresponsive to said distributor;
(d) repeating steps (b) and (c) for further specification data defining a different subset of said system units; and thereafter
(j) broadcasting a transaction from one of said system units within said first domain via said global address router to all of said system units, both within and without said first domain;
(k) filtering said transaction at each of said system units such that those of said system units within said first domain are enabled to respond to said transaction, and others of said system units outside said first domain are disabled from responding to said transaction.
17. A method according to claim 16 , wherein steps 0 ) and (k) are performed after step (e).
18. A method according to claim 16 , wherein step (k) disables less than all of said system units outside said first domain.
19. A method according to claim 16 , wherein a plurality of said system units in different ones of said domains physically include memory having addresses within respective ranges, and wherein said addresses of said respective ranges overlap at least partially.
20. A system unit for a multiprocessor computer having a global address router, a global data router, and a control-signal distributor for interconnecting a plurality of other ones of said system units, said computer also having a computer controller, said system unit comprising:
means coupled to both of said global routers for accepting at least one processor unit for generating addresses within a predetermined global range;
means coupled to said global routers for accepting at least one memory unit for storing data at a set of addresses within said predetermined global range;
means coupled to said global routers for accepting at least one input/output adapter for generating and/or receiving a set of addresses within said predetermined global range;
means connected to at least one of said preceding means for generating control signals to said distributor, said control signals representing error conditions within said system unit, and for receiving control signals representing error conditions within said other system units;
means for filtering said control signals such that only those control signals from selectable ones of said other units can affect the operation of said system unit;
means connectible to said computer controller for selecting said ones of said other units.
21. A system unit according to claim 20 , said filtering means including:
a domain mask register for holding data designating said selectable ones of said other units;
gating means for passing certain signals from said selectable ones, and for blocking said certain signals from others of said system units.
22. A system unit according to claim 21 , further comprising means for loading variable data into said domain mask register.
23. A system unit according to claim 20 , said filtering means including a shared-memory register for holding data designating memory physically installed on any of said system units in said computer in a portion of said global range as being accessible to said system unit.
24. A system unit according to claim 23 , further comprising means for loading variable data into said shared-memory register.
25. A system unit according to claim 23 , said filtering means including at least one further shared-memory register for holding data designating an address range comprising only a portion of said memory physically installed on said any system unit.
26. One system unit of a plurality of system units for a multiprocessor computer including:
a global address router for transferring addresses originating in any of said system units to all others of said system units, each address of said addresses having a source identifier indicating which of said plurality of system units had originated said each address, ;
a global data router for transferring data from any of said system units to all others of said system units, ;
a control-signal distributor for communicating a plurality of control signals from any of said system units to all others of said system units for affecting the operation of all of said system units in response to conditions occurring in said any system unit, ;
a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer, ;
a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains, ;
a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain, said one system unit comprising:
at least one subsystem connected to said global address router for coupling said addresses between said subsystem and any other of said system units, and connected to said global data router for transferring transaction data between said subsystem and any other of said system units, said subsystem being taken from the group consisting of:
a processor subsystem for executing transactions, ;
a memory subsystem for storing data within said global range, ; and
an input/output subsystem for communicating with input/output adapters;
at least one generator of said control signals coupled to said distributor;
at least one receptor of said control signals;
a domain writable mask register receiving from said computer controller a value representing which of said plurality of system units belong to the same domain as said one system unit; and
a comparator coupled to said domain mask register for producing an inhibiting signal when said source identifier indicates that said each address did not originate within said same domain, said inhibiting signal being coupled to said at least one subsystem so as to render it unresponsive to said each address.
27. A system unit according to claim 26 , wherein said domain configurator further combines a plurality of said hardware domains into a domain cluster comprising an arbitrary subset of said domains independently of any physical reconnection of said system units within said computer;
at least one writable shared-memory mask register which of said plurality of system units belong to the same domain cluster as said one system unit,
said comparator being further coupled to said domain mask register for producing said inhibiting signal when said source identifier indicates that said each address originated at certain of said system units outside said same domain cluster.
28. A system unit according to claim 16 , wherein said at least one subsystem includes said memory subsystem for storing data within a portion of said global address range, said system unit further comprising:
at least one shared-memory address register receiving from said computer controller a value defining a shared range of memory addresses within said portion of said global range,
said comparator being further responsive to said shared-memory address register for inhibiting said memory subsystem when said each address lies outside said shared range.
29. A system unit according to claim 26 , wherein said at least one generator of said control signals forms a portion of a local address arbiter for requesting and receiving accesses to said global address router.
30. A system unit according to claim 29 , wherein said at least one receptor of said control signals further forms a portion of said local address arbiter.
31. A system unit according to claim 26 , wherein said one system unit includes at least two different ones of said subsystems.
32. A system unit according to claim 31 , wherein said one system unit includes all three of said subsystems.
33. A system unit according to claim 26 , wherein said processor subsystem includes a plurality of individual microprocessors.
34. A multiprocessor computer having hardware domains variably configurable by commands from an operator, said computer comprising:
a plurality of separate system units for performing sequences of transactions, each said system unit being individually physically removable and replaceable within said computer, and each including at least one of:
a processor unit for generating addresses within a predetermined global range,
a memory unit for storing data at a set of addresses within said predetermined global range, and an input/output adapter for generating and/or receiving a set of addresses within said predetermined global range;
a global address router coupled to said system units for transferring addresses generated in any of said system units to others of said system units;
a global data router for transferring data from any of said system units to others of said system units;
a control-signal distributor for communicating a plurality of control signals from any of said system units to all others of said system units for affecting the entire operation of all of said system units in response to error and status conditions occurring in said any system unit;
a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer;
a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains;
a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain.
35. A computer according to claim 34 , wherein said domain filter is coupled to at least one of said global routers for inhibiting transactions on said one global router originating in those of said system units within one of said domains from being received in certain of said system units outside said one domain.
36. A computer according to claim 34 , wherein:
said domain configurator further combines a plurality of said hardware domains into a domain cluster comprising an arbitrary subset of said domains independently of any physical reconnection of said system units within said computer;
said computer controller is responsive to further ones of said commands for specifying to said domain configurator which of said system units belong to said domain cluster;
said domain filter permitting said at least some control signals originating in those of said system units within said one domain to affect those of said systems units outside said one domain but within said domain cluster.
37. A method of partitioning a computer having a plurality of system units, a global address router, a global data router, a control-signal distributor coupled directly to every one of said system units, and a domain filter into a plurality of independent hardware domains under programmable control, comprising:
(a) starting a configuration mode;
(b) receiving specification data defining a subset of said system units for inclusion within one of said hardware domains;
(c) loading said specification data into a domain filter so as to render those of said system units within said one domain responsive to certain control signals in said distributor, and to render others of said system units unresponsive to said distributor, said certain control signals representing error and status conditions occurring in any of said system units for affecting the operation of the entire system;
(d) repeating steps (b) and (c) for further specification data defining a different subset of said system units.
38. A method according to claim 37 , wherein step (c) is also responsive to said specification data for loading said domain filter so as to render those of said system units within said one domain responsive to addresses on said global address router originating from those of said system units within said one domain, and to render said system units within said first domain unresponsive to addresses on said global address router originating from at least some of those of said system units not within said first domain.
39. A method according to claim 37 , further comprising the steps, performed after step (d), of:
(e) broadcasting a transaction from one of said system units within said first domain via said global address router to all of said system units, both within and without said first domain;
(f) filtering said transaction at each of said system units such that those of said system units within said first domain are enabled to respond to said transaction, and others of said system units outside said first domain are disabled from responding to said transaction.
40. A multiprocessor computer having hardware domains variably configurable by commands from an operator, said computer comprising:
a plurality of separate system units for performing sequences of transactions, each including at least one of: a processor unit for generating addresses within a predetermined global range, a memory unit for storing data at a set of addresses within said predetermined global range, and an input/output adapter for generating and/or receiving a set of addresses within said predetermined global range; a global address router coupled to said system units for transferring addresses generated in any of said system units to others of said system units; a global data router for transferring data from any of said system units to others of said system units; a control-signal distributor for communicating a plurality of control signals from any of said system units to others of said system units for affecting the operation of all of said system units in response to conditions occurring in said any system unit; a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer; and a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain, wherein said domain filter is coupled to at least one of said global routers for inhibiting transactions on said one global router originating in those of said system units within one of said domains from being received in certain of said system units outside said one domain.
41. A computer according to claim 40 further comprising a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains.
42. A computer according to claim 41 , wherein said one global router is said global address router.
43. A computer according to claim 41 , wherein said global address router has multiple paths coupled to all of said system units for carrying a plurality of transactions between different subsets of said system units simultaneously.
44. A computer according to claim 41 , wherein said one global router is said global data router.
45. A computer according to claim 44 , wherein said global data router has multiple paths coupled to all of said system units for carrying data associated with a plurality of transactions between different subsets of said system units simultaneously.
46. A computer according to claim 41 , wherein said domain filter is coupled both to said global address router and to said global data router for inhibiting both addresses and data originating in those of said system units within one of said domains from being received in certain of said system units outside said one domain.
47. A computer according to claim 41 , wherein said domain filter includes:
a connection for identifying which of said system units has generated a current address in said address router; at least one domain - mask register for each of said system units specifying which of said system units belong to which of said domains; gating logic responsive to said source-identifying connection and to said domain-mask register for decoupling said system unit from all of said system units not in the same domain as said system unit having generated said current address.
48. A computer according to claim 47 , wherein said domain filter includes
a plurality of cluster registers each identifying which of said system units belong to a domain cluster, and responsive to a current one of said transactions; a connection for transmitting a valid-transaction signal to each of said system units in said common cluster for any of said transactions originating from one of said system units belonging to said domain cluster.
49. A computer according to claim 48 , wherein said domain filter includes a shared-address register indicative of a range of shared addresses among different system units within said domain cluster.
50. A multiprocessor computer having hardware domains variably configurable by commands from an operator, said computer comprising:
a plurality of separate system units for performing sequences of transactions, each including at least one of: a processor unit for generating addresses within a predetermined global range, a memory unit for storing data at a set of addresses within said predetermined global range, and an input/output adapter for generating and/or receiving a set of addresses within said predetermined global range; a global address router coupled to said system units for transferring addresses generated in any of said system units to others of said system units; a global data router for transferring data from any of said system units to others of said system units; a control-signal distributor for communicating a plurality of control signals from any of said system units to all others of said system units for affecting the operation of all of said system units in response to error and status conditions occurring in said any system unit; a domain configurator for electronically dividing said computer into a plurality of software-configurable hardware domains each comprising an arbitrary subset of said system units independently of any physical reconnection of said system units within said computer; a domain filter coupled to all of said system units for electronically inhibiting at least some of said control signals originating in those of said system units within one of said domains from affecting certain of said system units outside said one domain.
51. A computer according to claim 50 , further comprising a computer controller responsive to said commands for specifying to said domain configurator which of said system units belong to each of said hardware domains.
52. A computer according to claim 50 , wherein said domain filter is coupled to at least one of said global routers for inhibiting transactions on said one global router originating in those of said system units within one of said domains from being received in certain of said system units outside said one domain.
53. A computer according to claim 50 , wherein:
said domain configurator further combines a plurality of said hardware domains into a domain cluster comprising an arbitrary subset of said domains independently of any physical reconnection of said system units within said computer; said computer controller is responsive to further ones of said commands for specifying to said domain configurator which of said system units belong to said domain cluster; said domain filter permitting said at least some control signals originating in those of said system units within said one domain to affect those of said systems units outside said one domain but within said domain cluster.
54. A computer system comprising:
a plurality of separate system units for performing sequences of transactions, each including at least a processor unit for generating addresses within a predetermined global range; a global address router coupled to said plurality of separate system units and configured to transfer addresses generated in any of said system units to others of said system units; a control - signal distributor configured to communicate a plurality of control signals from any of said system units to others of said system units for affecting the operation of all of said system units in response to conditions occurring in said any system unit; a domain configurator coupled to electronically partition said plurality of system units into one or more software - configurable hardware domains independently of any physical reconnection of said plurality of system units, wherein each of said one or more software - configurable hardware domains includes an arbitrary subset of said plurality of system units; and a domain filter coupled to each of said plurality of system units and configured to electronically inhibit at least some of said control signals originating in system units belonging to a given one of said hardware domains from affecting system units not belonging to said given one of said hardware domains, wherein said domain filter is further coupled to inhibit transactions originating in system units belonging to said given one of said hardware domains from being received in said system units not belonging to said given one of said hardware domains.
55. The computer system according to claim 54 , wherein said domain filter includes:
a connection for identifying which of said plurality of system units has generated a current address in said global address router; a domain-mask register corresponding to each of said plurality of system units configured to specify to which of said hardware domains each of said plurality of system units belongs; and gating logic responsive to said connection and to said domain-mask register and configured to decouple a system unit having generated said current address and belonging to a particular hardware domain from system units not belonging to said particular hardware domain.
56. The computer system according to claim 55 , wherein each of said plurality of system units may include a portion of said domain filter.
57. The computer system according to claim 56 , wherein said domain filter is further configured to group system units of one or more of said plurality of hardware domains into a cluster, wherein said system units of said one or more domains belonging to a given cluster share a range of addresses within a system memory space.
58. The computer system according to claim 57 , wherein said domain filter further comprises:
a plurality of cluster registers each identifying to which cluster each of said plurality of system units belongs, wherein said plurality of cluster registers is responsive to a current one of said transactions; a second connection for transmitting a valid - transaction signal to each of said plurality of system units belonging to a given cluster for any of said transactions originating from one of said plurality of system units belonging to said given cluster.
59. The computer system according to claim 57 , wherein said domain filter further includes a shared-address register indicative of said range of addresses being shared among said system units of said one or more domains belonging to said given cluster.
60. A method of partitioning a computer system having a plurality of system units into one or more independent hardware domains, said method comprising:
receiving specification data defining a first subset of said plurality of system units for inclusion within a first hardware domain; loading said specification data into a domain filter and causing each system unit belonging to said first subset of said plurality of system units to be responsive to a first set of control signals, and to cause system units not belonging to said first subset of said plurality of system units to be unresponsive to said first set of control signals; and in response to said loading said specification data into said domain filter causing each system unit belonging to said first subset of said plurality of system units to be responsive to addresses originating from said system units belonging to said first subset of said plurality of system units, and causing each system unit belonging to said first subset of said plurality of system units to be unresponsive to addresses originating from said system units not belonging to said first subset of said plurality of system units.
61. The method according to claim 60 , further comprising:
identifying which of said plurality of system units has generated a current address; specifying using a domain-mask register to which of said hardware domains each of said plurality of system units belongs; decoupling a system unit having generated said current address and belonging to a particular hardware domain from system units not belonging to said particular hardware domain.
62. The method according to claim 60 further comprising grouping system units of one or more of said plurality of hardware domains into a cluster, wherein said system units of said one or more domains belonging to a given cluster share a range of addresses within a system memory space.
63. The method according to claim 60 further comprising:
identifying to which cluster each of said plurality of system units belongs using a plurality of cluster registers, wherein said plurality of cluster registers is responsive to a current one of said transactions; and transmitting a valid-transaction signal to each of said plurality of system units belonging to a given cluster for any of said transactions originating from one of said plurality of system units belonging to said given cluster.
64. The method according to claim 60 further comprising indicating said range of addresses being shared among said system units of said one or more domains belonging to said given cluster.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.