Multiple sequence processor system
AssigneeInternational Business Machines Corporation
InventorsPhilip G. Emma, Joshua W. Knight, James H. Pomerene, Rudolph N. Rechtschaffen, Frank J. Sparacio
Life of this patent
Estimating the term…
Abstract
A digital computer includes a main and an auxiliary pipeline processor which are configured to concurrently execute contiguous groups of instructions taken from a single instruction sequence. The instructions in a sequence may be divided into groups by using either taken-branch instructions or certain instructions which may change the contents of the general purpose registers as group delimiters. Both methods of grouping the instructions use a branch history table to predict the sequence in which the instructions will be executed.
Claims11
A digital data processing system, comprising:
- means for providing one sequence of machine instructions from a single task, which sequence of machine instruction is dividable into at least a first group of sequential machine instructions and a second group of sequential machine instructions according to a predetermined delimiting rule;
- queueing means for storing first and second values which identify, respectively, said first and second groups of sequential machine instructions in the sequence;
- main and auxiliary data processing means each of which is able to execute any instruction in the sequence;
- data storage means, coupled to the main and auxiliary processing means, for holding data values which may be modified by said main and auxiliary processing means as a result of executing instructions in the sequence of machine instructions;
- means for dispatching the first and second values to the respective main and auxiliary data processing means to cause said main processing means to obtain and execute the first group of sequential machine instructions and, concurrently, to cause the auxiliary processing means to obtain and execute the second group of sequential machine instructions;
- checking means, coupled to said main and auxiliary data processing means, for detecting the occurrence of an action taken by said main data processing means on one of the data values held by the data storage means which action affects one of the data values held by the data storage means that is used during the concurrent execution of said second group of sequential machine instructions by said auxiliary data processing means;
- and
- means for selectively invalidating the execution of said second group sequential machine instructions by said auxiliary data processing means responsive to the detection of said action.
In a digital computer system including first and second data processors, a method for processing a sequence of machine instructions form a single task, the sequence being dividable into first and second groups of sequential machine instructions in accordance with a delimiting rule, wherein each of the first and second data processors is able to execute any instruction in the sequence, said method comprising the steps of:
- A. delimiting said first and second groups of sequential machine instructions in said sequence of instructions according to said delimiting rule to produce first and second identifying values which identify, respectively the first and second groups of sequential machine instructions;
- B. storing the first and second values which identify the respective first and second groups of sequential machine instructions in a single queue;
- C. dispatching said first and second identifying values from said queue to said first and second data processing means, respectively, to cause said first data processing means to obtain and execute said first group of sequential machine instructions on said first data processing means and, concurrently, to cause the second processing means to obtain and execute said second group of sequential machine instructions on said second data processing means;
- and
- D. storing data values which are modified by said main and auxiliary processing means as a result of executing instructions in the sequence of machine instructions in a shared data store;
- monitoring said first and second data processing means to detect the occurrence of an action taken by said first data processing means on one of the data values stored in the shared data store in executing said first group of sequential machine instructions, which action affects one of the data values held by the data storage means that is used during the concurrent execution of said second group of sequential machine instructions by said second data processing means;
- and
- selectively invalidating the execution of said second group sequential machine instructions by said second data processing means in response to the detected occurrence of said action.
In a digital computer system including first and second data processing means, a method for processing a sequence of machine instructions that is dividable into first and second groups of sequential machine instructions in accordance with a delimiting rule, comprising the steps of:
- delimiting said first ad second groups of sequential machine instructions in said sequence of instructions according to said delimiting rule to produce first and second values which identify the respective first and second groups of sequential machine instructions in the sequence of instructions;
- storing the first and second values which identify said first and second groups of sequential machine instructions in a single queue;
- dispatching said first and second values form said queue to said first and second data processing means, respectively, to cause said first processing means to obtain and execute said first group of sequential machine instructions on said first data processing means to obtain and execute the second data processing means to obtain and execute said second group of sequential machine instructions on said second data processing means;
- storing data values, which are modified by said main and auxiliary processing means as a result of executing instructions, in the sequence of machine instructions in a shared data store;
- monitoring said first and second data processing means to detect an occurrence of an action taken by said first data processing means on one of the data values stored in the shared data store in executing said first group of sequential machine instructions, which action affects one of the data values held by the data storage means which is used during the concurrent execution of said second group of sequential machine instructions by said second data processing means;
- invalidating the execution of said second group of sequential machine instructions by said second data processing means in response to the detected occurrence of said action;
- dispatching said second value representing said second group of sequential machine instructions to said first data processing means in response to the invalidation of the execution of said second group of sequential machine instructions by the second data processing means.
A digital data processing system, comprising:
- means for providing a sequence of machine instructions form a single task;
- means for dividing said sequence of machine instructions into first and second groups of sequential machine instructions according to a delimiting rule;
- main and auxiliary data processing means each of which is able to execute any instruction in the sequence;
- data storage means, coupled to the main and auxiliary processing means, for holding data values which may be modified by said main and auxiliary processing mean as a result of executing instructions in the sequence;
- and
- means for dispatching the first and second groups of instructions to the respective main and auxiliary data processing means to cause said main processing means to obtain and execute the first group of machine instructions and, concurrently, to cause the auxiliary processing means to obtain and execute the second group of machine instructions;
- checking means, coupled to said main and auxiliary data processing means, for detecting the occurrence of an action taken by said main data processing means on one of the data values held by the data storage means which action affects one of the data values held by the data storage means that is used during the concurrent execution of said second group of sequential machine instructions by said auxiliary data processing means;
- and
- means for selectively invalidating the execution of said second groups of sequential machine instructions by said auxiliary data processing means responsive to the detection of said action.
Dependencies are inferred from the claim text.