EP0969367A2

System and method used in a computer system for distributing tasks between multiprocessing I/O subsystems

Abstract

A load balancing system and method for distributing a task between Input/Output subsystems of a computer system. The load balancing system includes a central processing unit for transmitting the task to a central controller. The central controller in response to the transmitted task generates and transmits a request command over a side-band bus to a plurality of peripheral components. Each of the peripheral components that are capable of servicing the request command will transmit a response signal over the side-band bus back to the central controller. Thereafter, the central controller by processing all the response signals dispatches a service command signal to one of the capable peripheral components. The service command signal will direct the one capable peripheral component to service the task.

EP0969367A2, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 20 May 2019, 7.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

27 claims: 5 independent, 22 dependent

  1. 1
    A computer system having a load balancing system for distributing a task within input/output subsystems, said computer system comprising:at least one central processing unit for transmitting the task;a central controller, responsive to the transmitted task, for generating and transmitting a request command;a side-band bus;a plurality of peripheral components, each of the peripheral components capable of servicing the request command transmits a response signal over said side-band bus to said central controller;and said central controller, responsive to the transmitted response signals, for dispatching a service command signal to one of the plurality of peripheral components, where said one peripheral component in response to the service command signal services the task.
  2. 2
    The computer system of Claim 1, wherein each response signal includes a current number of queued tasks.
  3. 3
    The computer system of Claim 1, wherein the request command includes a multicast signal.
  4. 4
    The computer system of Claim 1, wherein each central processing unit includes a basic input/output system for interrogating the plurality of peripheral components to determine which of the peripheral components are configured for load balancing, and for assigning a unique identifier to each of the configured peripheral components.
  5. 5
    The computer system of Claim 1, wherein said central controller includes a processor for masking out all of the peripheral components not registered to receive the request command to determine which of the plurality of peripheral components are capable of servicing the request command.
  6. 6
    The computer system of Claim 5, wherein said central controller further includes:a configuration table for receiving and storing a current number of queued tasks and a maximum number of queued tasks for each capable peripheral component;and said processor for determining the one of the plurality of peripheral components by comparing the current number of queued tasks to the maximum number of queued tasks for each capable peripheral component.
  7. 7
    The computer system of Claim 6, wherein said configuration table further includes a configuration space containing a maximum number of queueable tasks register.
  8. 8
    The computer system of Claim 6, wherein said configuration table further includes a configuration space containing a current number of tasks register.
  9. 9
    The computer system of Claim 6, wherein said configuration table further includes a task capability register.
  10. 10
    The computer system of Claim 4, wherein each configured peripheral component includes a peripheral queue for indicating a maximum number of queued tasks using a level priority mark and for storing a current number of queued tasks, where if the current number of queued tasks is less than the maximum number of queued tasks then the respective configured peripheral component transmits the response signal having a predetermined level over said side-band bus to said central controller.
  11. 11
    The computer system of Claim 4, wherein each configured peripheral component includes a configuration space.
  12. 12
    The computer system of Claim 11, wherein said configuration space includes a task capability register.
  13. 13
    The computer system of Claim 11, wherein said configuration space includes a maximum queue depth register.
  14. 14
    The computer system of Claim 11, wherein said configuration space includes a current queue depth register.
  15. 15
    A computer system used in a computer for distributing a task, said computer system comprising:a central controller, responsive to the task, for generating and transmitting a service command signal for servicing the task;a side-band bus;a plurality of capable peripheral components coupled by the side-band bus to the central controller;and said central controller includes a processor for determining which one of the capable peripheral components has a least number of current tasks to be serviced by comparing a current number of queued tasks to a maximum number of queued tasks associated with each capable peripheral component, where said one of the capable peripheral components receives the service command signal.
  16. 16
    The computer system of Claim 15, wherein said central controller further includes a configuration table for storing the current number of queued tasks, the maximum number of queued tasks, and a bit pattern representative of a class of the plurality of tasks each capable peripheral components is capable of servicing.
  17. 17
    The computer system of any of Claims 1 to 16, wherein said central controller further includes a central queue for storing the task until anyone of the capable peripheral components has the current number of queued tasks less than the maximum number of queued tasks.
  18. 18
    The computer system of any of Claims 1 to 17, wherein the side-band bus includes at least one data line, a control line and a clock line.
  19. 19
    The computer system of Claim 18, wherein the side-band bus further includes a predetermined number of pins for permitting a scalable protocol.
  20. 21
    A method for distributing a task within Input/Output subsystems of a computer system, said method comprising the steps of:broadcasting a multicast signal to a plurality of peripheral components that are capable of servicing the task;generating and transmitting, responsive to the multicast signal, a response signal from each of the plurality of capable peripheral components;and dispatching, responsive to the transmitted response signals, a service command signal for servicing the task to one of the plurality of capable peripheral components.
  21. 22
    The method of Claim 21, further comprising the steps of:interrogating the plurality of peripheral components to determine which of the plurality of peripheral components are configured for load balancing;assigning a unique identifier to each of the configured peripheral components;and obtaining a maximum number of queued tasks from each of the configured peripheral components.
  22. 23
    The method of Claim 21, wherein the step of dispatching includes transmitting the service command signal to said one of the plurality of capable peripheral components having a least number of current tasks to be serviced.
  23. 24
    The method of Claim 23, wherein the step of transmitting the service command signal further includes:receiving and storing a current number of queued tasks and a maximum number of queued tasks for each capable peripheral component;and determining the one of the plurality of capable peripheral components having the least number of current tasks to be serviced by comparing the current number of queued tasks to the maximum number of queued tasks for each capable peripheral component.
  24. 25
    The method of Claim 21, wherein said step of broadcasting further includes masking out all of the peripheral components not registered to receive the task to determine the plurality of capable peripheral components.
  25. 26
    The method of Claim 21, wherein the step of generating and transmitting a response signal includes comparing within each capable peripheral component a current number of queued tasks to a level priority mark indicative of a maximum number of queued tasks, where if the current number of queued tasks is less than the maximum number of queued tasks then the corresponding capable peripheral component will transmit the response signal having a predetermined level.
  26. 27
    The method of Claim 21, wherein the step of dispatching further includes delaying the transmission of the service command signal until anyone of the capable peripheral components has the current number of queued tasks less than the maximum number of queued tasks.
Independent claims26