Patent ID: 6978457
Filing Date: 2005-12-20
Classification: G06F,Y10S

Abstract:
1. A method for implementing a hardware controller that concurrently executes a number of tasks by carrying out operations on behalf of the tasks, the method comprising: determining a format for a context, comprising stored information related to a task, that represents the task; determining possible states, and transitions between states, that a context representing a task currently executed by the hardware controller can occupy at each point in the execution of the task, transitions representing operations performed on behalf of a task by the hardware controller; partitioning the states and operations carried out by the hardware controller into a number of managers each containing a number of related states and carrying out a number of operations; associating each manager with a data structure for storing contexts occupying states contained by the manager; defining a data-structure-manipulator manager that implements the data structures and that transfers contexts from one data structure to another; defining a command interface to the data-structure-manipulator manager for each manager; and implementing the managers and data-structure-manipulator manager, according to the determined states and transitions, so that, when a first manager carries out an operation that results in transition of a context to a state contained in a second manager, the first manager generates a command to the data-structure-manipulator manager to transfer the context from the data structure associated with the first manager to the data structure associated with the second manager such that timing of the hardware controller is controlled by a clock circuit that generates clock signals that define clock cycles, wherein each logical manager may issue at most one command to the data-structure manipulator during each clock cycle, and wherein the data-structure manipulator concurrently executes commands issued by the logical managers during a clock cycle by serializing the commands according to a defined precedence ordering of the commands.