US4783734A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Computer system with variable length process to process communication
Assignee: STMicroelectronics Ltd Great Britain
•
Filing: 1984-11-02
•
Granted: 1988-11-08
•
Expires: 2004-11-02
Abstract
Abstract A microcomputer method and system for executing a plurality of concurrent processes provides synchronized message transmission so that data is transmitted between a communicating pair of processes when the two processes are at corresponding program stages. The messages may be variable in length and are transmitted by indicating a source address for the data to be transmitted, a destination address for the data, and a count of the number of standard unit lengths of data to be transmitted in the message.
Inventors
- 👤 Michael D. May
- 👤 Roger M. Shepherd
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 10:16
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/4881; G06F9/54
Claims Analysis
Total Claims: 23
Claim 1
Independent Claim
339 words
A method of operating concurrent processes in a computer system wherein each concurrent process executes a program having plurality of instructions comprising the steps of: (a) forming a respective first pointer for each concurrent process to identify the process, (b) forming a respective second pointer for each concurrent process to indicate a program stage for the process, (c) scheduling a plurality of the concurrent processes for execution by a processor, including (i) indicating a process which is being executed by the processor, said process being referred to as the current process, (ii) identifying one or more processes forming a collection awaiting execution by the processor, (iii) in response to a particular instruction stopping execution of the current process, storing a second pointer for said current process, changing the indication of the current process to indicate the next process in said collection and then executing said next process at a program stage indicated by the second pointer of the said next process; and (d) transmitting messages between concurrent processes so that data is transferred from an outputting process to an inputting process in a communicating pair of processes, each process in said air executing a sequence of instructions in a program including communication instructions, said scheduling step being responsive to said communication instructions so that message transmission between the pair of processes is completed when both are at corresponding program stages, the transfer of data being effected by (i) transferring from one addressable location to another at least one message unit of predetermined bit length, (ii) execution of at least one of the processes of each pair providing a count of the number of message units to be transferred in a message, (iii) execution of the outputting process providing an indication of a source address from which data is to be output, (iv) execution of the inputting process providing a destination address to which the data is to be input and (v) transferring from the source address to the destination address the number of message units indicated by said count.
Claim 2
Independent Claim
339 words
A method of operating concurrent processes in a computer system wherein each concurrent process executes a program having plurality of instructions comprising the steps of: (a) forming a respective first pointer for each concurrent process to identify the process, (b) forming a respective second pointer for each concurrent process to indicate a program stage for the process, (c) scheduling a plurality of the concurrent processes for execution by a processor, including (i) indicating a process which is being executed by the processor, said process being referred to as the current process, (ii) identifying one or more processes forming a collection awaiting execution by the processor, (iii) in response to a particular instruction stopping execution of the current process, storing a second pointer for said current process, changing the indication of the current process to indicate the next process in said collection and then executing said next process at a program stage indicated by the second pointer of the said next process; and (d) transmitting messages between concurrent processes so that data is transferred from an outputting process to an inputting process in a communicating pair of processes, each process in said air executing a sequence of instructions in a program including communication instructions, said scheduling step being responsive to said communication instructions so that message transmission between the pair of processes is completed when both are at corresponding program stages, the transfer of data being effected by (i) transferring from one addressable location to another at least one message unit of predetermined bit length, (ii) execution of at least one of the processes of each pair providing a count of the number of message units to be transferred in a message, (iii) execution of the outputting process providing an indication of a source address from which data is to be output, (iv) execution of the inputting process providing a destination address to which the data is to be input and (v) transferring from the source address to the destination address the number of message units indicated by said count.
Claim 3
Dependent Claim
95 words
The method according to claim 1 wherein said concurrent processes are distributed in a computer system comprising a network of interconnected integrated circuit devices and said step of transmitting messages between concurrent processes further includes addressing communication channels of a first type to permit said data transfer to occur between processes on the same integrated circuit device and addressing channels of a second type to permit said data transfer to occur between two processes, one of which is on one integrated circuit device and the other of which is on a different integrated circuit device.
Claim 4
Dependent Claim
89 words
The method according to claim 1 further comprising establishing within said memory a respective workspace for each process, each workspace comprising a plurality of addressable memory locations, and recording in said locations of each workspace variables associated with the corresponding process, and wherein said identifying step in said scheduling step includes forming a linked list of said processes awaiting execution by providing in said workspace of each process on said linked list an indication of the first pointer for the respective next process scheduled for execution by the processor.
Claim 5
Dependent Claim
21 words
The method of operating concurrent processes according to claim 1 wherein the transfer of each message unit comprises transferring eight bits.
Claim 6
Dependent Claim
36 words
The method of operating concurrent processes according to claim 1 further including counting the number of message units transferred in a message and providing a signal when all message units in the message have been transferred.
Claim 7
Dependent Claim
36 words
A method according to claim 1 further including counting the number of message units transferred in a message and changing the indication of source address as the number of message units remaining to be transferred decreases.
Claim 8
Dependent Claim
40 words
The method according to claim 1 further comprising counting the number of message units transferred in a message and changing the indication of said destination address as the count of the number of message units remaining to be transferred decreases.
Claim 9
Dependent Claim
374 words
A microcomputer comprising memory and a processor coupled thereto and being operable to execute a plurality of concurrent processes in accordance with a plurality of program steps, said program steps comprising a plurality of instructions for sequential execution by the processor, each instruction including a set of function bits which designate a function to be executed by the processor wherein: (a) the microcomputer includes a scheduling means comprising (i) means for indicating the process which is being executed by the processor, said process being called the current process, (ii) means for identifying one or more processes which form a collection awaiting execution by the processor, and (iii) next process indicator means to indicate the next process in the collection to be executed by the processor, (b) said processor includes means responsive to a selected one of said instructions to stop execution of said current process by said processor and to respond to said next process indicator means to make the next process in the said collection the current process, whereby the processor is operated to share its processing time among said plurality of concurrent processes; and (c) said microcomputer includes message transmission means for effecting synchronized data transfer between two of said concurrent processes, said message transmission means comprising a plurality of communication channels, a status indicator to indicate the status of data communication through each channel and synchronizing means cooperating with said scheduling means to respond to said status indicator to interrupt a current process or add an interrupted process to said collection so that communication between two communicating processes is completed when the two processes are at corresponding program steps, said message transmission means further comprising (i) means for transferring from one addressable location to another a message unit of predetermined bit length, (ii) means responsive to execution of a message instruction to provide a count of the number of message units to be included in a message, (iii) source addressing means responsive to execution of a message instruction by an outputting process to indicate the address from which data is to be output and (iv) destination addressing means responsive to execution of a message instruction by an inputting process to indicate the address to which the data is to be input.
Claim 10
Dependent Claim
374 words
A microcomputer comprising memory and a processor coupled thereto and being operable to execute a plurality of concurrent processes in accordance with a plurality of program steps, said program steps comprising a plurality of instructions for sequential execution by the processor, each instruction including a set of function bits which designate a function to be executed by the processor wherein: (a) the microcomputer includes a scheduling means comprising (i) means for indicating the process which is being executed by the processor, said process being called the current process, (ii) means for identifying one or more processes which form a collection awaiting execution by the processor, and (iii) next process indicator means to indicate the next process in the collection to be executed by the processor, (b) said processor includes means responsive to a selected one of said instructions to stop execution of said current process by said processor and to respond to said next process indicator means to make the next process in the said collection the current process, whereby the processor is operated to share its processing time among said plurality of concurrent processes; and (c) said microcomputer includes message transmission means for effecting synchronized data transfer between two of said concurrent processes, said message transmission means comprising a plurality of communication channels, a status indicator to indicate the status of data communication through each channel and synchronizing means cooperating with said scheduling means to respond to said status indicator to interrupt a current process or add an interrupted process to said collection so that communication between two communicating processes is completed when the two processes are at corresponding program steps, said message transmission means further comprising (i) means for transferring from one addressable location to another a message unit of predetermined bit length, (ii) means responsive to execution of a message instruction to provide a count of the number of message units to be included in a message, (iii) source addressing means responsive to execution of a message instruction by an outputting process to indicate the address from which data is to be output and (iv) destination addressing means responsive to execution of a message instruction by an inputting process to indicate the address to which the data is to be input.
Claim 11
Dependent Claim
34 words
The microcomputer according to claim 8 wherein said means for identifying processes comprises a linked list indicating processes awaiting executing by said processor and means for indicating the last process on said linked list.
Claim 12
Dependent Claim
77 words
A microcomputer according to claim 9 wherein said memory provides for each process a respective workspace having a plurality of addressable locations, each of said workspaces including: (i) memory locations for recording variables associated with a corresponding process, (ii) a program stage indicator for the corresponding process and (iii) a portion of said linked list when the corresponding process itself is on said linked list, said linked list portion indicating the next process on said linked list.
Claim 13
Dependent Claim
31 words
The microcomputer of claim 8 wherein said message transmission means permits data transfer between processes executed on the same microcomputer, at least one of said communication channels comprising a memory location.
Claim 14
Dependent Claim
45 words
A microcomputer according to claim 11 in which the processor further includes means for copying directly a number of bytes of data indicated as a result of execution of a message instruction, directly from one byte address to another in the memory of the microcomputer.
Claim 15
Dependent Claim
36 words
A microcomputer according to claim 8, wherein the message transmission means is arranged to permit external data transmission between processes which are executed on different microcomputers and the or each channel comprises an external communication link.
Claim 16
Dependent Claim
20 words
A microcomputer according to claim 13, wherein each external communication link comprises store means for holding one byte of data.
Claim 17
Dependent Claim
24 words
A microcomputer according to claim 14, wherein each external communication link is arranged to transmit a succession of bytes without action by the processor.
Claim 18
Dependent Claim
65 words
A microcomputer according to claim 15, wherein each external communication link is arranged to deschedule a process which executes a message instruction using the address of that link and each link includes means for storing an indication of the number of bytes to be transmitted through the link together with a pointer to the source or destination address for the next byte of the message.
Claim 19
Dependent Claim
31 words
A microcomputer according to claim 16, in which each external communication link includes means for counting the number of bytes transmitted and providing an indication when all bytes have been transmitted.
Claim 20
Dependent Claim
41 words
A microcomputer according to claim 16, wherein each external communication link includes signal generating means to generate a request signal to the processor to reschedule the process involved in the message transmission when all bytes of the message have been transmitted.
Claim 21
Dependent Claim
375 words
A network of directly interconnected micro-computers each comprising a single integrated circuit microcomputer, each said microcomputer comprising memory and a processor coupled to said memory and being operable to execute a plurality of concurrent processes in accordance with a plurality of program steps, said program steps comprising a plurality of instructions for sequential execution by the processor, wherein: (a) each said microcomputer includes a scheduling means comprising (i) means for indicating the process which is being executed on said microcomputer, said process being called the current process, (ii) means for identifying one or more processes which form a collection awaiting execution by the processor, and (iii) next process indicator means to indicate the next process in the collection to be executed by the processor, (b) each said processor including means responsive to a selected one of said instructions to stop execution of said current process by said processor and to respond to said next process indicator means to make the next process in the said collection the current process whereby each processor is operated to share its processing time among said plurality of concurrent processes, and (c) each said microcomputer including message transmission means for effecting synchronized data transfer between two of said concurrent processes, said message transmission means comprising a plurality of communication channels, a status indicator to indicate the status of data communication through each channel and synchronizing means cooperating with said scheduling means to respond to said status indicator to interrupt a current process or add an interrupted process to said collection so that communication between two communicating processes is completed when the two processes are at corresponding program steps, said message transmission means further comprising (i) means for transferring from one addressable location to another a message unit of predetermined bit length, (ii) means responsive to execution of a message instruction to provide a count of the number of message units to be included in a message, (iii) source addressing means responsive to execution of a message instruction by an outputting process to indicate the address from which data is to be output and (iv) destination addressing means responsive to execution of a message instruction by an inputting process to indicate the address to which the data is to be input.
Claim 22
Dependent Claim
375 words
A network of directly interconnected micro-computers each comprising a single integrated circuit microcomputer, each said microcomputer comprising memory and a processor coupled to said memory and being operable to execute a plurality of concurrent processes in accordance with a plurality of program steps, said program steps comprising a plurality of instructions for sequential execution by the processor, wherein: (a) each said microcomputer includes a scheduling means comprising (i) means for indicating the process which is being executed on said microcomputer, said process being called the current process, (ii) means for identifying one or more processes which form a collection awaiting execution by the processor, and (iii) next process indicator means to indicate the next process in the collection to be executed by the processor, (b) each said processor including means responsive to a selected one of said instructions to stop execution of said current process by said processor and to respond to said next process indicator means to make the next process in the said collection the current process whereby each processor is operated to share its processing time among said plurality of concurrent processes, and (c) each said microcomputer including message transmission means for effecting synchronized data transfer between two of said concurrent processes, said message transmission means comprising a plurality of communication channels, a status indicator to indicate the status of data communication through each channel and synchronizing means cooperating with said scheduling means to respond to said status indicator to interrupt a current process or add an interrupted process to said collection so that communication between two communicating processes is completed when the two processes are at corresponding program steps, said message transmission means further comprising (i) means for transferring from one addressable location to another a message unit of predetermined bit length, (ii) means responsive to execution of a message instruction to provide a count of the number of message units to be included in a message, (iii) source addressing means responsive to execution of a message instruction by an outputting process to indicate the address from which data is to be output and (iv) destination addressing means responsive to execution of a message instruction by an inputting process to indicate the address to which the data is to be input.
Claim 23
Dependent Claim
110 words
A network according to claim 19 wherein each said means for identifying processes comprises a respective linked list indicating processes awaiting execution by said processor and means for indicating the last process on said linked list, and wherein said memory provides for each process on the microcomputer a respective workspace having a plurality of addressable locations, each of said workspaces including: (i) memory locations for recording variables associated with a corresponding process, (ii) a program stage indicator for the corresponding process and (iii) a portion of said linked list when the corresponding process is on said linked list, said linked list portion indicating the next process on said linked list.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1991-11-08 | 1992-05-09 | 1992-11-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1995-11-08 | 1996-05-09 | 1996-11-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 1999-11-08 | 2000-05-09 | 2000-11-08 | $7700.00 | Window Closed / Lapsed |