← Back to Patent Explorer
US5247671A Expired / Lapsed US ⏱️ 0.0 years remaining

Scalable schedules for serial communications controller in data processing systems

Assignee: International Business Machines Corp
•
Filing: 1990-02-14
•
Granted: 1993-09-21
•
Expires: 2010-02-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A serial communications adapter provides an interface to physical communications ports. A scheduler executing on the adapter schedules tasks at different priority levels, so that time-critical tasks are performed quickly enough to prevent data loss. Data to be transmitted or received through a communications port is stored in buffers on the adapter, and data and command communications between the adapter and the host system are preferably performed over a DMA channel.

Inventors

  • 👤 John T. Adkins
  • 👤 James S. Pogorzelski
  • 👤 Jacqueline H. Wilson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 16:03
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F13/00; G06F13/38; G06F13/10; G06F13/12; G06F13/122

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 299 words
In a programmable communications controller connected between a host data processing system and a plurality of communications lines, a method for controlling data transfer between the communications lines, through a plurality of communications ports contained in the communications controller, and the host data processing system, the method comprising the steps executed by the programmable communications controller of: providing in an intermediate memory a plurality of tasks for performing portions of a data transfer operation between the communications ports and the intermediate memory, and between the intermediate memory and the host data processing system; generating a priority table in the intermediate memory having a highest priority level for requests for data block transfers between the intermediate memory and a communications port, wherein the highest priority level contains only a single entry location for the level, and a plurality of lower priority levels for the tasks, each lower priority level having an entry location for each communications port; inserting entries into the lower priority entry locations identifying which of the tasks are to be performed in response to events which occur at the communications ports and within the host data processing system; generating a counter for the entry location for the highest priority level for tracking the number of outstanding requests for data block transfers; generating a queue, of outstanding requests for data block transfers, external to the priority table for the data block transfers; responsive to execution of a data block transfer, resetting the counter of requests for data block transfers to zero for the duration of the data block transfer, whereby tasks at lower priority levels can be scheduled during the data block transfer; and selecting the tasks for execution from the priority table in order of priority level among the tasks identified by entries in the priority table.
Claim 2
Dependent Claim 299 words
In a programmable communications controller connected between a host data processing system and a plurality of communications lines, a method for controlling data transfer between the communications lines, through a plurality of communications ports contained in the communications controller, and the host data processing system, the method comprising the steps executed by the programmable communications controller of: providing in an intermediate memory a plurality of tasks for performing portions of a data transfer operation between the communications ports and the intermediate memory, and between the intermediate memory and the host data processing system; generating a priority table in the intermediate memory having a highest priority level for requests for data block transfers between the intermediate memory and a communications port, wherein the highest priority level contains only a single entry location for the level, and a plurality of lower priority levels for the tasks, each lower priority level having an entry location for each communications port; inserting entries into the lower priority entry locations identifying which of the tasks are to be performed in response to events which occur at the communications ports and within the host data processing system; generating a counter for the entry location for the highest priority level for tracking the number of outstanding requests for data block transfers; generating a queue, of outstanding requests for data block transfers, external to the priority table for the data block transfers; responsive to execution of a data block transfer, resetting the counter of requests for data block transfers to zero for the duration of the data block transfer, whereby tasks at lower priority levels can be scheduled during the data block transfer; and selecting the tasks for execution from the priority table in order of priority level among the tasks identified by entries in the priority table.
Claim 3
Dependent Claim 20 words
The method of claim 1, further comprising executing a task for a plurality of communications ports in a round robin.
Claim 4
Dependent Claim 43 words
The method of claim 1, further comprising a step, responsive to hardware interrupts raised by the host system or by the communications ports, for inserting entries to the entry locations of the priority table or incrementing the counter for the highest priority level.
Claim 5
Dependent Claim 26 words
The method of claim 3, further comprising a step responsive to the execution of scheduled tasks for inserting entries to the priority table for other tasks.
Claim 6
Dependent Claim 243 words
A communications adaptor for transferring blocks of data over a plurality of communications sessions with a host data processing system, the communications adaptor comprising: an interface to the host data processing system; an intermediate memory; a plurality of communications ports; a processor for executing tasks for the communications ports; a bus connecting said interface, said intermediate memory, said processor and said communications ports; a direct memory access controller for transferring blocks of data between the communications ports and the intermediate memory over the bus; means for generating a scheduling work table in the intermediate memory, the scheduling work table having a plurality of task priority levels, wherein a highest priority level has only a single entry, such single entry having a counter of outstanding requests for transfers of blocks of data, and a plurality of lower priority levels each having an entry location for each communications port for invoking the task for the communications port; means for generating interrupts in response to events at said communications ports; interrupt handler means for, in response to generated interrupts, inserting entries to the entry locations for lower priority levels, and incrementing the highest priority level counter for the highest priority level; means for temporarily setting the counter of the highest priority level to zero during a transfer of a block of data; and means responsive to the scheduling work table for scheduling execution of the tasks for the communications ports in order of the priority levels.
Claim 7
Dependent Claim 243 words
A communications adaptor for transferring blocks of data over a plurality of communications sessions with a host data processing system, the communications adaptor comprising: an interface to the host data processing system; an intermediate memory; a plurality of communications ports; a processor for executing tasks for the communications ports; a bus connecting said interface, said intermediate memory, said processor and said communications ports; a direct memory access controller for transferring blocks of data between the communications ports and the intermediate memory over the bus; means for generating a scheduling work table in the intermediate memory, the scheduling work table having a plurality of task priority levels, wherein a highest priority level has only a single entry, such single entry having a counter of outstanding requests for transfers of blocks of data, and a plurality of lower priority levels each having an entry location for each communications port for invoking the task for the communications port; means for generating interrupts in response to events at said communications ports; interrupt handler means for, in response to generated interrupts, inserting entries to the entry locations for lower priority levels, and incrementing the highest priority level counter for the highest priority level; means for temporarily setting the counter of the highest priority level to zero during a transfer of a block of data; and means responsive to the scheduling work table for scheduling execution of the tasks for the communications ports in order of the priority levels.
Claim 8
Dependent Claim 20 words
The communications adaptor of claim 5, further comprising means responsive to executing tasks for inserting entries to the entry locations.
Claim 9
Dependent Claim 27 words
The communications adaptor of claim 5 and further comprising: means for scheduling a plurality of invocations of a task for different communications ports in a round robin.
Claim 10
Dependent Claim 26 words
The communications adaptor of claim 5, and further comprising: means responsive to user selected conditions for assigning a lowest priority level task to a communications port.
Claim 11
Dependent Claim 22 words
The communications adaptor of claim 5, and further comprising means for selecting the number of priority levels in the scheduling work table.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-09-20 1997-03-22 1997-09-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-09-20 2001-03-22 2001-09-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-09-20 2005-03-22 2005-09-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag