← Back to Patent Explorer
US5560029A Expired / Lapsed US ⏱️ 0.0 years remaining

Data processing system with synchronization coprocessor for multiple threads

Assignee: Massachusetts Institute of Technology
•
Filing: 1992-07-21
•
Granted: 1996-09-24
•
Expires: 2012-07-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multiprocessor system comprises a plurality of processing nodes, each node processing multiple threads of computation. Each node includes a data processor which sequentially processes blocks of code, each block defining a thread of computation. The code includes instructions to send start messages with data values to start new threads of computation. Each node also includes a synchronization coprocessor for processing start messages from the same and other nodes of the system. The coprocessor processes the messages from a message queue to store values as operands for threads of computation, to determine when all operands required for a thread of computation have been received and to provide in a continuation queue an indication to the data processor that a thread of computation may be initiated. The data processor subsequently nonsynchronously initiates the thread of computation. Alternatively, a single processor may perform the continuation and message processing functions in an interleaved sequence. The data processor creates messages to remote nodes using a global virtual address which is translated before transmission to a node designation and a local virtual address at the remote node.

Inventors

  • 👤 Gregory M. Papadopoulos
  • 👤 Rishiyur S. Nikhil
  • 👤 Robert J. Greiner
  • 👤 Arvind

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 20:16
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/30; G06F9/30003; G06F9/30076; G06F9/3009; G06F9/38; G06F9/3836; G06F9/3851

Claims Analysis

Total Claims: 6
Claim 1
Independent Claim 257 words
A data processing system comprising a plurality of processing nodes, each node comprising: a continuation queue which receives continuations which identify operations to be performed with respect to frames of data, the operations identified by the continuations being blocks of code sequences; a message queue which receives messages which identify blocks of code sequences to be performed with respect to frames of data; and data processing means for processing the blocks of code sequences identified by the continuation queue and by the message queue; the data processing means processing individual blocks of code sequences identified by messages from the message queue as message handlers which generate continuations for the continuation queue when conditions required by the operations identified by the continuations are met; and the data processing means processing individual blocks of code sequences identified by continuations from the continuation queue as threads of computation, threads of computation including operations to generate messages for initiating new threads of computation; and wherein the data processing means comprises a synchronization coprocessor and a data processor, the synchronization coprocessor processes messages from the same node and other nodes of the system, stores values from the messages as operands for threads of computation, determines when all operands required for a thread of computation have been received and provides an indication to a data processor that a thread of computation may be initiated, and the data processor nonsynchronously initiates processing of a thread of computation after completion of a prior thread of computation in response to the indication from the synchronization processor.
Claim 2
Dependent Claim 257 words
A data processing system comprising a plurality of processing nodes, each node comprising: a continuation queue which receives continuations which identify operations to be performed with respect to frames of data, the operations identified by the continuations being blocks of code sequences; a message queue which receives messages which identify blocks of code sequences to be performed with respect to frames of data; and data processing means for processing the blocks of code sequences identified by the continuation queue and by the message queue; the data processing means processing individual blocks of code sequences identified by messages from the message queue as message handlers which generate continuations for the continuation queue when conditions required by the operations identified by the continuations are met; and the data processing means processing individual blocks of code sequences identified by continuations from the continuation queue as threads of computation, threads of computation including operations to generate messages for initiating new threads of computation; and wherein the data processing means comprises a synchronization coprocessor and a data processor, the synchronization coprocessor processes messages from the same node and other nodes of the system, stores values from the messages as operands for threads of computation, determines when all operands required for a thread of computation have been received and provides an indication to a data processor that a thread of computation may be initiated, and the data processor nonsynchronously initiates processing of a thread of computation after completion of a prior thread of computation in response to the indication from the synchronization processor.
Claim 3
Dependent Claim 26 words
A data processing system as claimed in claim 1 wherein a continuation comprises a pointer to an activation frame and a pointer to an instruction sequence.
Claim 4
Dependent Claim 26 words
A data processing system as claimed in claim 1 wherein a message comprises a pointer to an activation frame and a pointer to an instruction sequence.
Claim 5
Dependent Claim 26 words
A data processing system as claimed in claim 1 wherein the continuation queue presents continuations according to a priority which causes active frames to continue processing.
Claim 6
Dependent Claim 84 words
A data processing system as claimed in claim 1 comprising plural data processing nodes, wherein each node operates on a local virtual address space, and each node comprises means for translating from the local virtual address space to a local physical address space, each data processing means generating a global virtual address to access an address in a remote node, and each node comprising means for translating the global virtual address to a node designation and a local virtual address of the remote node.

References Cited (Backward Citations)

US4320455A Cited
US4481573A Cited
US4615001A Cited
US4858105A Cited
US4819155A Cited
US4943908A Cited
US5050070A Cited
US5050068A Cited
US5241635A Cited
US5353418A Cited
US5226131A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-09-24 2000-03-25 2000-09-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-09-24 2004-03-25 2004-09-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-09-24 2008-03-25 2008-09-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag