Browse Prior Art Database

Method for Task Transitions in a High Performance Communications Adapter

IP.com Disclosure Number: IPCOM000028708D
Original Publication Date: 2004-May-27
Included in the Prior Art Database: 2004-May-27
Document File: 1 page(s) / 40K

Publishing Venue

IBM

Abstract

This invention describes an efficient method for scheduling a suspended persistent task to run, and optionally passing data to that task in the process. In this case, for a high performance message passing adapter, this invention was used extensively to achieve intertask communication and scheduling.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 1

Method for Task Transitions in a High Performance Communications Adapter

Disclosed is a method for causing a persistent task to be scheduled and optionally passing data to that task. This is implemented on a multitasking, event driven communications adapter whose microsequencer allows code to manipulate the current task id, and also contains both global and task-specific resources. The global resources include the Current Task register and a set of general purpose registers. Task specific registers include private general purpose registers, a Resume Program Counter register, and a Task Control Register. The code is able to modify the Current Task register to assume the identity of any task. When it does so, it gains access to the task specific registers associated with that task. Assume that Task A is a persistent task that is dedicated to interacting with the adapter transmit hardware to send data packets, and Task B is a command task which manages requests from the user on the host system. Further assume that Task A is in a suspended state waiting for work, but there is no hardware defined event available to force it to become scheduled. When Task B receives a new request to send a packet, it must be able to pass this request to a send task such as Task A and cause it to start processing. In this case, Task B determines that Task A is suspended and waiting for work. Task B then loads information about the new send request into the global general purpose registers, and sets the task id of Task A into the Current Task register. With this action, Task B has just assumed the identity of Task A, and is able to copy the send request information from global general purpose registers into the task specific registers belonging to...