Microengine for parallel processor architecture

Electrical computers and digital processing systems: processing – Processing control – Processing sequence control

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C712S228000

Reexamination Certificate

active

06668317

ABSTRACT:

BACKGROUND
This invention relates to parallel processors.
Parallel processing is an efficient form of information processing of concurrent events in a computing process. Parallel processing demands concurrent execution of many programs in a computer, in contrast to sequential processing. In the context of a parallel processor, parallelism involves doing more than one thing at the same time. Unlike a serial paradigm where all tasks are performed sequentially at a single station or a pipelined machine where tasks are performed at specialized stations, with parallel processing, a plurality of stations are provided with each capable of performing all tasks. That is, in general all or a plurality of the stations work simultaneously and independently on the same or common elements of a problem. Certain problems are suitable for solution by applying parallel processing.
Thus, types of computer processing include single instruction stream, single data stream, the conventional serial von Neumann computer in which there is a single stream of instructions. A second processing type is the single instruction stream, multiple data streams process (SIMD). This processing can have multiple arithmetic-logic processors and a single control processor. Each of the processors perform operations on the data in lock-step. These machines are synchronized by the control processor. A third type is multiple instruction streams, single data stream (MISD) process. This processing has the same data stream flows through a linear array of processors executing different instruction streams. A fourth is multiple instruction streams, multiple data streams (MIMD). This processing uses multiple processors, each executing its own instruction stream to process a data stream fed to each of the processors. Multiple instruction streams, multiple data streams (MIMD) processors may have several instruction processing units and therefore several data streams.
SUMMARY
According to an aspect of the present invention, a microcontrolled functional execution unit includes a control store to store a microprogram and a microengine controller for maintaining a plurality of microprogram counters. The unit also includes decode logic for decoding instructions and a context event arbiter, which in response to external flags, determines which one of a plurality of threads executable in the microcontrol function execution unit to promote to an execution state.
One or more of the following advantages may be provided by one or more aspects of the invention.
The microengine can process multiple hardware threads. Each microengine maintains a plurality of program counters in hardware and states associated with the program counters. Effectively, a corresponding plurality of sets of threads can be simultaneously active on a microengine while only one is actually operating at any one time. Hardware context swapping synchronizes completion of tasks. For example, two threads could attempt to access the same shared resource. When a resource completes a requested task from one of the microengine thread contexts the resource reports back a flag signaling completion of an operation. When the flag is received by the microengine, the microengine can determine which thread to turn on.
Hardware multithreading can be used to allow a first thread on a microengine to initiate a transaction e.g., an access to memory. During the memory access, if the microengine e.g., had only a single thread that could operate, that microengine would be dormant until data was returned from the memory. By employing hardware context swapping within the microengine, the hardware context swapping enables other contexts with unique program counters to execute in the same microengine. Thus, another thread can execute while the first thread is awaiting read data to return from memory. These features can be extended to as many threads that are simultaneously active in a microengine to process more work in a data path.


REFERENCES:
patent: 3373408 (1968-03-01), Ling
patent: 3940745 (1976-02-01), Sajeva
patent: 5390329 (1995-02-01), Gaertner et al.
patent: 5542088 (1996-07-01), Jennings et al.
patent: 5557766 (1996-09-01), Takiguchi et al.
patent: 5574922 (1996-11-01), James
patent: 5630130 (1997-05-01), Perotto et al.
patent: 5680641 (1997-10-01), Sidman
patent: 5742822 (1998-04-01), Motomura
patent: 5761522 (1998-06-01), Hisanaga et al.
patent: 5812868 (1998-09-01), Moyer et al.
patent: 5854922 (1998-12-01), Gravenstein et al.
patent: 5937187 (1999-08-01), Kosche et al.
patent: 6195676 (2001-02-01), Spix et al.
patent: 6216220 (2001-04-01), Hwang
patent: 6223279 (2001-04-01), Nishimura et al.
patent: 6389449 (2002-05-01), Nemirovsky et al.
patent: 0 745 933 (1996-04-01), None
patent: 59111533 (1984-06-01), None
“Multithreaded Processor Architectures”, G.T. Byrd et al., IEEE Spectrum, IEEE Inc., New York, US, vol. 32, No. 8, Aug. 1, 1995, pps. 38-46.
“A Processor Architecture For Horizon”, M.R. Thistle et al., Orlando, Washington, IEEE Comp. Soc. Press., US, vol. Conf. 1, Nov. 14, 1988, pps. 35-41.
“Strongarming Portable Communications”, T. Litch et al., IEEE Micro, US, IEEE, Inc., New York, vol. 18, No. 2, Mar. 1, 1998, pps. 48-55.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Microengine for parallel processor architecture does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Microengine for parallel processor architecture, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Microengine for parallel processor architecture will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3183800

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.