System and method for stack-based processing of multiple real-time audio tasks
First Claim
1. A software system for controlling a real-time signal processor, the real-time signal processor including a host computer, a message queue, a stack and a media I/O circuit, the host computer for sending a plurality of messages designating ones of a plurality of corresponding signal processing operations asynchronously to the message queue, each signal processing operation corresponding to a client processing module wherein:
- the media I/O circuit includes a means for generating a plurality of sequential output synchronization timing signals;
the host computer includes a host task having subroutine for parsing a new net list of signal processes to generate a new signal processing sequence;
the host task includes a subroutine for writing the signal processing sequence into a message queue;
the software system comprising;
a message processing routine for reading the messages from the message queue and dispatching the messages to designated ones of the plurality of client processing modules;
a process sequencing routine for invoking client processing modules and for controlling the stack, the client processing modules communicating signals by a sending client processing module pushing a signal onto the stack, and a receiving client processing module popping the signal from the stack;
a subroutine for waiting for an output synchronization timing signal;
a subroutine operating in response to an output synchronization timing signal for reading the signal processing sequence from the message queue; and
a subroutine for copying the signal processing sequence into a process sequence table so that a new signal flow topology is specified.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for stack-based processing of multiple real-time tasks operates on a net list of tasks which operate essentially simultaneously with system resources shared between tasks in a dynamic configuration. This system and method operate to control dispatching of messages which activate signal processing tasks, sequencing of processes activated by the messages and management of signal flow. Tasks are dynamically activated and deactivated in accordance with the specification by the net list by manipulating the task signals on the stack, thereby substantially reducing high-speed memory requirements of the system.
57 Citations
19 Claims
-
1. A software system for controlling a real-time signal processor, the real-time signal processor including a host computer, a message queue, a stack and a media I/O circuit, the host computer for sending a plurality of messages designating ones of a plurality of corresponding signal processing operations asynchronously to the message queue, each signal processing operation corresponding to a client processing module wherein:
-
the media I/O circuit includes a means for generating a plurality of sequential output synchronization timing signals; the host computer includes a host task having subroutine for parsing a new net list of signal processes to generate a new signal processing sequence; the host task includes a subroutine for writing the signal processing sequence into a message queue; the software system comprising; a message processing routine for reading the messages from the message queue and dispatching the messages to designated ones of the plurality of client processing modules; a process sequencing routine for invoking client processing modules and for controlling the stack, the client processing modules communicating signals by a sending client processing module pushing a signal onto the stack, and a receiving client processing module popping the signal from the stack; a subroutine for waiting for an output synchronization timing signal; a subroutine operating in response to an output synchronization timing signal for reading the signal processing sequence from the message queue; and a subroutine for copying the signal processing sequence into a process sequence table so that a new signal flow topology is specified. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A software system for controlling a real-time signal processor, the real-time signal processor including a host computer, a message queue, a stack and a media I/O circuit the host computer for sending a plurality of messages designating ones of a plurality of corresponding signal processing operations asynchronously to the message queue wherein:
-
the media I/O circuit includes a means for generating a plurality of sequential output synchronization timing signals; the host computer includes a host task having a subroutine for parsing a new net list of signal processes to generate a new signal processing sequence; the host task includes a subroutine for waiting the signal processing sequence into a message queue; the software system comprising; a plurality of client processing modules, each client processor module for processing signals and for communicating signals to a client processor module; a message processing routine for reading the messages from the message queue and synchronously dispatching the messages to designated ones of the plurality of client processing modules; a process sequencing routine for invoking client processing modules and for controlling the stack, the client processing modules communicating signals by a sending client processing module pushing a signal onto the stack, and a receiving client processing module popping the signal from the stack; a subroutine for waiting for an output synchronization timing signal; a subroutine operating in response to an output synchronization timing signal for reading the signal processing sequence from the message queue; and a subroutine for copying the signal processing sequence into a process sequence table so that a new signal flow topology is specified. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A signal processing system comprising:
-
a host computer system including a host processor and an execution memory; a media input/output circuit coupled to the host computer system and including a media signal processor and a memory coupled to the media signal processor, the memory including a stack; a host operating system for operating on the host processor; a host task for operating under the host operating system on the host processor and generating a net list of messages on a message queue for selecting signal processing processes; a resource manager (RM) software subsystem for operating on the host computer system; an interprocess communication operating system (XOS) for interacting in cooperation on the host processor and the media signal processor; a synchronous net list processing routine for executing under XOS on the media signal processor, the synchronous net list processing routine further including; a plurality of client processing modules each corresponding to a signal processing process, each client processor module for processing signals and for communicating signals to a client processor module; a message processing routine for reading the messages from the message queue and synchronously dispatching the messages to designated ones of the plurality of client processing modules; and a process sequencing routine for invoking client processing modules and for controlling the stack, the client processing modules communicating signals by a sending client processing module pushing a signal onto the stack, and a receiving client processing module popping the signal from the stack. - View Dependent Claims (17, 18)
-
-
19. A method of scheduling a plurality of signal processes designated by a net list of signal processes using a stack-based protocol, the method comprising the steps of:
-
generating a plurality of sequential output synchronization timing signals; parsing a new net list of signal processes to generate a new signal processing sequence; writing the signal processing sequence into a message queue; waiting for an output synchronization timing signal; in response to an output synchronization timing signal, reading the signal processing sequence from the message queue; and copying the signal processing sequence into a process sequence table so that a new signal flow topology is specified.
-
Specification