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
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.
References Cited (Backward Citations)
US3587054A
Cited
US3599162A
Cited
US4261033A
Cited
US4257095A
Cited
US4560985A
Cited
US4560985B1
Cited
US4814974A
Cited
US4494194A
Cited
US4479211A
Cited
US4493036A
Cited
US4636944A
Cited
US4870566A
Cited
US4980820A
Cited
US4642756A
Cited
US4751634A
Cited
US4719569A
Cited
US4747130A
Cited
US4739323A
Cited
US4821177A
Cited
US4803623A
Cited
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 |