Multi-phase subroutine control circuitry
First Claim
1. A method of subroutine control in a data processing system which operates by performing a plurality of tasks wherein a task may include one or more subroutines, said method comprising the steps of:
- providing subroutine entry and task identification indications when a performing task arrives at the beginning of a subroutine;
providing subroutine return and task identification indications when a performing task arrives at the end of a subroutine;
determining a return address in response to said subroutine entry indication;
storing the determined return address in a first return address storage means corresponding to the identified task;
also storing the most recently determined return address for each task in a second return address storage means corresponding to the indentified task, said second return address storage means providing for significantly faster access than said first return address storage means; and
accessing in response to said subroutine return indication the most recent return address stored in the second return address storage means of the identified task for transfer to said system and then replacing with the next most recent address from the first storage means of the identified task; and
performing the aforementioned steps of storing, accessing and determining concurrently for different tasks.
3 Assignments
0 Petitions
Accused Products
Abstract
Multi-phase subroutine control apparatus for use in a data processing system which provides for the concurrent execution of a plurality of tasks in a multiprogramming and multiprocessing environment. Subrouting control operations are staged so as to share common hardware in a manner which in effect provides a plurality of phased concurrently operating subroutine control circuits wherein each circuit provides control for a different one of a plurality of concurrently executing tasks. The common subroutine hardware includes a multi-level stack for each task and a fast access return address register which permits a return address to be rapidly made available when required during execution of a task.
-
Citations
5 Claims
-
1. A method of subroutine control in a data processing system which operates by performing a plurality of tasks wherein a task may include one or more subroutines, said method comprising the steps of:
-
providing subroutine entry and task identification indications when a performing task arrives at the beginning of a subroutine; providing subroutine return and task identification indications when a performing task arrives at the end of a subroutine; determining a return address in response to said subroutine entry indication; storing the determined return address in a first return address storage means corresponding to the identified task; also storing the most recently determined return address for each task in a second return address storage means corresponding to the indentified task, said second return address storage means providing for significantly faster access than said first return address storage means; and accessing in response to said subroutine return indication the most recent return address stored in the second return address storage means of the identified task for transfer to said system and then replacing with the next most recent address from the first storage means of the identified task; and performing the aforementioned steps of storing, accessing and determining concurrently for different tasks. - View Dependent Claims (2)
-
-
3. In a cyclically operating data processing system which provides for the concurrent performance of a plurality of tasks wherein a task may include one or more subroutines, subroutine control means comprising:
-
a return address storage means, one for each task, for storing return addresses for the respective task during performance thereof; and return address control means responsive to a subroutine entry indication and a task identification indication provided by said system when a task enters a subroutine for determining a return address for the indicated subroutine and for storing said return address in the return address storage means of the respective task; said return address control means also being responsive to a subroutine entry return indication and a task identification indication provided by said system when a task arrives at the end of a routine for causing a particular return address stored in the respective storage means of the identified task to be accessed therefrom and applied to said system; said return address control means operating during a cycle to permit a return address to be determined for a first task concurrently with the storing of a return address for a second task in its respective return address storage means, and also concurrently with the accessing of a return address for a third task from its respective return address storage means for transfer to said system; said return address storage means including a first storage means for each task for storing a plurality of return addresses for its respective task and a second significantly faster storage means for each task for storing the most recent address of its respective task; said return address control means operating during a cycle in response to said subroutine entry and task identification indications for causing the determined return address to be stored in both of the respective first and second storage means of the identified task; said return address control means operating during a cycle in response to said subroutine return and task identification indications to access the most recent return address from the second storage means of the identified task for transfer to said system; said return address control means also operating during said cycle in response to said subroutine return and task identification indications for causing the next most recent return address to be accessed from the respective first storage means of the identified task and to be stored in the second storage means of the identified task. - View Dependent Claims (4, 5)
-
Specification