Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
First Claim
1. In a microprogrammed data processing system including high level instruction storage means, the combination comprising:
- task generation means for fetching high level instructions from said high level instruction storage means and in response thereto generating one or more tasks for performing each high level instruction, each task being in turn performable by the execution of one or more task microinstructions;
microinstruction storage means for storing selectably addressable task microinstructions for use in performing said tasks;
said task generating means being operative to access selected microinstructions from said microinstruction storage means;
microinstruction execution means for receiving and executing microinstructions selected from said microinstruction storage means by said task generating means; and
task control means responsive to said task generation means and to said microinstruction execution means for determining which tasks are ready for execution and for causing said task generation means to address said microinstruction storage means with addresses corresponding to ready task microinstructions, the order of addressing of microinstructions being chosen to allow for the execution of ready task microinstructions by said microinstruction execution means in an intermixed order regardless of the particular task to which each belongs so as to thereby provide for task multiprogramming at a microinstruction level; and
a plurality of dynamically allocatable registers for storing data required during execution of said tasks;
said task control means including register allocation means for monitoring the free and use states of said registers and in response thereto for dynamically assigning the registers required by each task during execution thereof.
2 Assignments
0 Petitions
Accused Products
Abstract
A microprogrammed data processing system is provided in which each high level instruction is performed by one or more tasks, each task being in turn performed by executing one or more task microinstructions in a microprogrammed manner. Dynamic resource allocation is provided by employing a plurality of dynamically allocatable registers whose free and use states are continuously monitored in an allocation register. The outputs of the allocation register are used as an address for a register allocation memory which is mapped so as to identify a particular group of free registers which are available for assignment for each new task in response to the allocation register address.
67 Citations
10 Claims
-
1. In a microprogrammed data processing system including high level instruction storage means, the combination comprising:
-
task generation means for fetching high level instructions from said high level instruction storage means and in response thereto generating one or more tasks for performing each high level instruction, each task being in turn performable by the execution of one or more task microinstructions; microinstruction storage means for storing selectably addressable task microinstructions for use in performing said tasks; said task generating means being operative to access selected microinstructions from said microinstruction storage means; microinstruction execution means for receiving and executing microinstructions selected from said microinstruction storage means by said task generating means; and task control means responsive to said task generation means and to said microinstruction execution means for determining which tasks are ready for execution and for causing said task generation means to address said microinstruction storage means with addresses corresponding to ready task microinstructions, the order of addressing of microinstructions being chosen to allow for the execution of ready task microinstructions by said microinstruction execution means in an intermixed order regardless of the particular task to which each belongs so as to thereby provide for task multiprogramming at a microinstruction level; and a plurality of dynamically allocatable registers for storing data required during execution of said tasks; said task control means including register allocation means for monitoring the free and use states of said registers and in response thereto for dynamically assigning the registers required by each task during execution thereof. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a microprogrammed data processing system including high level instruction storage means and microinstruction execution means, an improved method for performing high level instructions by executing microinstructions corresponding thereto, said method comprising the steps of:
-
fetching a high level instruction to be performed from said high level instruction storage means; generating one or more tasks corresponding to each high level instruction, each task being performable by executing one or more microinstructions; determining from the generated tasks a group of tasks which are ready for execution; determining register assignments for each ready task; monitoring the free and use states of said registers; dynamically assigning registers for each task in response to said monitoring; and deriving and executing task microinstructions corresponding to ready tasks in said group in an intermixed sequence regardless of the particular tasks to which each microinstruction corresponds so as to thereby provide for task multiprogramming on a microinstruction level, said intermixed sequence being determined in response to the results of microinstruction execution and the ready tasks in said group.
-
Specification