Patent US6009479A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6009479A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for assigning unique addresses to agents on a system management bus

Assignee: Dell USA LP
•
Filing: 1997-05-30
•
Granted: 1999-12-28
•
Expires: 2017-05-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system including a bus master performs a method for automatically assigning addresses to agents on a bus. Addresses are automatically assigned so that a computer system user does not set physical or logical switches, either manually or through software programming. The system and method also automatically assign unique addresses to new devices that are inserted on the bus while the bus is operating, thereby supporting "hot pluggable" devices. Slave agents are originally configured to operate at a class address. At the beginning of the method, a master determines whether any of the slaves reside at the class address. If so, then the master determines a new unique address and issues a Get Bitwise UID command to the slaves residing at the class address. Each of the slaves receives the Get Bitwise UID and responsively transmits a hardware identification (UID) in a loop of bitwise byte transmissions. One slave successfully transmits the hardware identification (UID) while the other individual slaves detect transmission errors during transmission of the hardware identification (UID) and terminate transmission upon the error detection. The unsuccessful slaves, if previously residing at a unique address, revert to the class address. The master receives the hardware identification (UID) of the successfully transmitting slave and issues a Set Address command in combination with the hardware identification (UID) and the new unique address to all slave agents at the class address. Only the slave agent with a hardware identification (UID) matching the UID of the Set Address command processes the Set Address command to completion and is assigned the address. The master uses the Get Bitwise UID command followed by the Set Address command in a loop to locate, identify and assign addresses to agents responding to a predetermined class address.

Inventors

  • 👤 Kenneth Layton Jeffries

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 13:46
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/06; G06F12/0646; G06F12/0653; G06F12/0661; G06F11/00; G06F11/006; G06F13/00; G06F13/38; G06F13/40; G06F13/4063; G06F13/4068; G06F13/4081

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 347 words
An apparatus comprising: a communications medium; a master device coupled to the communications medium, the master device including a master controller; a slave device coupled to the communications medium, the slave device including a slave controller and a hardware identifier designating a fixed slave device identification; a program code executable by the master controller including: an executable program code for determining a unique address; an executable program code for issuing a Get Identification command via transmission on the communications medium; an executable program code for receiving a slave device identification via transmission on the communications medium; and an executable program code for issuing a Set Address command via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving the Get Identification command via transmission on the communications medium; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving the Set Address command via transmission on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 2
Independent Claim 347 words
An apparatus comprising: a communications medium; a master device coupled to the communications medium, the master device including a master controller; a slave device coupled to the communications medium, the slave device including a slave controller and a hardware identifier designating a fixed slave device identification; a program code executable by the master controller including: an executable program code for determining a unique address; an executable program code for issuing a Get Identification command via transmission on the communications medium; an executable program code for receiving a slave device identification via transmission on the communications medium; and an executable program code for issuing a Set Address command via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving the Get Identification command via transmission on the communications medium; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving the Set Address command via transmission on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 3
Dependent Claim 44 words
An apparatus according to claim 1, wherein the program code executable by the slave controller of the slave device further includes: an executable program code for reverting to an assignment of a class address to the slave device when the match condition is nonmatching.
Claim 4
Dependent Claim 41 words
An apparatus according to claim 1, further comprising: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave device including a slave controller and a hardware identifier designating a fixed slave device identification.
Claim 5
Dependent Claim 151 words
An apparatus according to claim 1, further comprising: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification, wherein: the fixed slave device identification is a multiple-bit identification; and the executable program code executable by the individual slave devices and responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further includes: an executable program code for transmitting the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; an executable program code for detecting transmission errors on a byte boundary corresponding to a bit boundary of the multiple-bit fixed slave device identification.
Claim 6
Dependent Claim 124 words
An apparatus according to claim 4, wherein: the executable program code executable by the individual slave devices and responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further includes: an executable program code for transmitting the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; an executable program code for comparing data on the communications and the most recent of the one byte transmissions and determining a matching condition or a nonmatching condition, and an executable program code for terminating transmission when the nonmatching condition is determined.
Claim 7
Dependent Claim 72 words
An apparatus according to claim 1, further comprising: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification, wherein the program code executable by the master controller further includes: an executable program code for looping a plurality of iterations and setting unique addresses for the plurality of slave devices.
Claim 8
Dependent Claim 80 words
An apparatus according to claim 1, further comprising: a plurality of slave devices of a single class coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification, wherein the program code executable by the master controller further includes: an executable program code for looping a plurality of iterations and setting unique addresses for the plurality of slave devices in the single class.
Claim 9
Dependent Claim 79 words
An apparatus according to claim 1, further comprising: a plurality of N slave devices in a single class coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification, wherein the program code executable by the master controller further includes: an executable program code for looping a N iterations and setting unique addresses for the N slave devices in the single class.
Claim 10
Dependent Claim 16 words
An apparatus according to claim 1, further wherein: the hardware identifier is an SMB agent identifier.
Claim 11
Dependent Claim 37 words
A computer program product comprising: a computer usable medium having computable readable code embodied therein including the program code executable by the master controller and the program code executable by the slave controller according to claim 1.
Claim 12
Dependent Claim 224 words
A master device for controlling a plurality of slave devices, the master device and the plurality of slave devices being coupled by a communications medium, the master device comprising: a master controller; and a program code executable by the master controller including: an executable program code for determining a unique address; an executable program code for issuing a Get Identification command to the plurality of slave devices via transmission on the communications medium; an executable program code for receiving a slave device identification via transmission on the communications medium, the slave device identification being sent by a slave device that successfully transmits the slave device identification, the slave device detecting errors in transmission of individual bytes of a fixed slave device identification, sampling and comparing individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; and an executable program code for issuing a Set Address command via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification.
Claim 13
Dependent Claim 224 words
A master device for controlling a plurality of slave devices, the master device and the plurality of slave devices being coupled by a communications medium, the master device comprising: a master controller; and a program code executable by the master controller including: an executable program code for determining a unique address; an executable program code for issuing a Get Identification command to the plurality of slave devices via transmission on the communications medium; an executable program code for receiving a slave device identification via transmission on the communications medium, the slave device identification being sent by a slave device that successfully transmits the slave device identification, the slave device detecting errors in transmission of individual bytes of a fixed slave device identification, sampling and comparing individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; and an executable program code for issuing a Set Address command via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification.
Claim 14
Dependent Claim 29 words
A master device according to claim 11, further comprising: an executable program code for looping a plurality of iterations and setting unique addresses for the plurality of slave devices.
Claim 15
Dependent Claim 52 words
A master device according to claim 11, wherein the plurality of slave devices include a plurality of slave devices of a single class, the master device further comprising: an executable program code for looping a plurality of iterations and setting unique addresses for the plurality of slave devices in the single class.
Claim 16
Dependent Claim 51 words
A master device according to claim 11, wherein the plurality of slave devices include a plurality of N slave devices in a single class, the master device further comprising: an executable program code for looping a N iterations and setting unique addresses for the N slave devices in the single class.
Claim 17
Dependent Claim 28 words
A computer program product comprising: a computer usable medium having computable readable code embodied therein including the program code executable by the master controller according to claim 11.
Claim 18
Dependent Claim 272 words
A slave device operable in connection with a computer system including a communications medium for connection to the slave device, and a master device connected to the communications medium, the slave device comprising: a slave controller; a hardware identifier coupled to the slave controller designating a fixed slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving a Get Identification command transmitted on the communications medium by the master device; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving a Set Address command transmitted on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 19
Dependent Claim 272 words
A slave device operable in connection with a computer system including a communications medium for connection to the slave device, and a master device connected to the communications medium, the slave device comprising: a slave controller; a hardware identifier coupled to the slave controller designating a fixed slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving a Get Identification command transmitted on the communications medium by the master device; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving a Set Address command transmitted on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 20
Dependent Claim 45 words
A slave device according to claim 16, wherein the program code executable by the slave controller of the slave device further includes: an executable program code for reverting to an assignment of a class address to the slave device when the match condition is nonmatching.
Claim 21
Independent Claim 269 words
A system operable in connection with a computer system including a communications medium for connection to the system, and a master device connected to the communications medium, the system comprising: a slave controller; a hardware identifier coupled to the slave controller designating a fixed slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving a Get Identification command transmitted on the communications medium by the master device; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving a Set Address command transmitted on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 22
Independent Claim 269 words
A system operable in connection with a computer system including a communications medium for connection to the system, and a master device connected to the communications medium, the system comprising: a slave controller; a hardware identifier coupled to the slave controller designating a fixed slave device identification; and a program code executable by the slave controller of the slave device including: an executable program code for receiving a Get Identification command transmitted on the communications medium by the master device; an executable program code responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; an executable program code for receiving a Set Address command transmitted on the communications medium, the Set Address command including a received address and a received identification; an executable program code responsive to receipt of the Set Address command for comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and an executable program code for assigning the received address to the slave device when the match condition is matching.
Claim 23
Dependent Claim 41 words
A system according to claim 18, further comprising: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification.
Claim 24
Dependent Claim 151 words
A system according to claim 18, further comprising: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a slave controller and a hardware identifier designating a fixed slave device identification, wherein: the fixed slave device identification is a multiple-bit identification; and the executable program code executable by the individual slave devices and responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further includes: an executable program code for transmitting the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; an executable program code for detecting transmission errors on a byte boundary corresponding to a bit boundary of the multiple-bit fixed slave device identification.
Claim 25
Dependent Claim 124 words
A system according to claim 20, wherein: the executable program code executable by the individual slave devices and responsive to receipt of the Get Identification command for transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further includes: an executable program code for transmitting the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; an executable program code for comparing data on the communications and the most recent of the one byte transmissions and determining a matching condition or a nonmatching condition, and an executable program code for terminating transmission when the nonmatching condition is determined.
Claim 26
Independent Claim 306 words
A method of configuring a system including a plurality of devices connected to a communications medium, the devices including a master device and a slave device, the slave device including a hardware identifier designating a fixed slave device identification, the method comprising: determining a unique address; issuing a Get Identification command from the master device via transmission on the communications medium; receiving the Get Identification command at the slave device via transmission on the communications medium; on receipt of the Get Identification command at the slave device, transmitting from the slave device the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; receiving a slave device identification at the master device via transmission on the communications medium; and issuing a Set Address command from the master device via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification; and receiving the Set Address command at the slave device via transmission on the communications medium, the Set Address command including a received address and a received identification; on receipt of the Set Address command at the slave device, comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and assigning the received address to the slave device when the match condition is matching.
Claim 27
Independent Claim 306 words
A method of configuring a system including a plurality of devices connected to a communications medium, the devices including a master device and a slave device, the slave device including a hardware identifier designating a fixed slave device identification, the method comprising: determining a unique address; issuing a Get Identification command from the master device via transmission on the communications medium; receiving the Get Identification command at the slave device via transmission on the communications medium; on receipt of the Get Identification command at the slave device, transmitting from the slave device the fixed slave device identification via transmission on the communications medium, detecting errors in transmission of individual bytes of the fixed slave device identification, sampling and comparing the individual transmitted bytes with bytes intended for transmission to detect transmission errors, updating a count of the number of transmitted bytes if no transmission error is detected, determining whether a last byte of the fixed slave identification bytes has been transmitted, terminating transmission upon detecting an error, and reverting to a class address and ceasing to respond to the unique address if a unique address was previously assigned; receiving a slave device identification at the master device via transmission on the communications medium; and issuing a Set Address command from the master device via transmission on the communications medium, the Set Address command designating the unique address and the received slave device identification; and receiving the Set Address command at the slave device via transmission on the communications medium, the Set Address command including a received address and a received identification; on receipt of the Set Address command at the slave device, comparing the received identification and the fixed slave device identification to determine a match condition of matching or nonmatching; and assigning the received address to the slave device when the match condition is matching.
Claim 28
Dependent Claim 26 words
A method according to claim 22, further comprising: reverting to an assignment of a class address to the slave device when the match condition is nonmatching.
Claim 29
Dependent Claim 41 words
A method according to claim 22, wherein the plurality of devices includes: a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave device including a hardware identifier designating a fixed slave device identification.
Claim 30
Dependent Claim 127 words
A method according to claim 22, wherein: the plurality of devices includes a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a hardware identifier designating a fixed slave device identification, the fixed slave device identification being a multiple-bit identification; and the operations of transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further includes: transmitting from the slave device the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; detecting transmission errors on a byte boundary corresponding to a bit boundary of the multiple-bit fixed slave device identification.
Claim 31
Dependent Claim 96 words
A method according to claim 22, wherein: the operations of transmitting the fixed slave device identification via transmission on the communications medium, detecting errors in transmission, and terminating transmission upon detecting an error further include: transmitting from the slave device the fixed slave device identification in a plurality of one-byte transmissions, one byte corresponding to one bit of the multiple-bit fixed slave device identification; comparing data on the communications and the most recent of the one byte transmissions and determining a matching condition or a nonmatching condition, and terminating transmission when the nonmatching condition is determined.
Claim 32
Dependent Claim 60 words
A method according to claim 22, wherein the plurality of devices includes a plurality of slave devices coupled to the communications medium, individual slave devices of the plurality of slave devices including a hardware identifier designating a fixed slave device identification, the method further comprising: looping a plurality of iterations and setting unique addresses for the plurality of slave devices.
Claim 33
Dependent Claim 68 words
A method according to claim 22, wherein the plurality of devices includes a plurality of slave devices of a single class coupled to the communications medium, individual slave devices of the plurality of slave device including a hardware identifier designating a fixed slave device identification, the method further comprising: looping a plurality of iterations and setting unique addresses for the plurality of slave devices in the single class.
Claim 34
Dependent Claim 67 words
A method according to claim 22, wherein the plurality of devices includes a plurality of N slave devices in a single class coupled to the communications medium, individual slave devices of the plurality of slave device including a hardware identifier designating a fixed slave device identification, the method further comprising: looping a N iterations and setting unique addresses for the N slave devices in the single class.
Claim 35
Dependent Claim 15 words
A method according to claim 22, wherein: the hardware identifier is an SMB agent identifier.
Claim 36
Dependent Claim 27 words
A computer program product comprising: a computer usable medium having computable readable code embodied therein including a program code for performing a method according to claim 22.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-12-27 2003-06-28 2003-12-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-12-27 2007-06-28 2007-12-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-12-27 2011-06-28 2011-12-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag