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

Method and apparatus for executing tasks by following a linked list of memory packets

Assignee: Hewlett Packard Development Co LP
•
Filing: 1991-07-25
•
Granted: 1995-04-04
•
Expires: 2011-07-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer architecture has a plurality of processing cells interconnected to perform programming tasks. Each cell contains both memory and processing elements. Memory packets contain an instruction, a data element, and a pointer to another memory packet. Tasks are executed by following a linked list of memory packets. Transmission packets communicate instructions and register values along the linked list. A plurality of computer processes may be executed simultaneously.

Inventors

  • 👤 Robert W. Horst

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 02:06
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/80; G06F15/8007; G06F15/8015; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4494

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 232 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution; transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; and processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; wherein the first instruction is retrieved from the one of said plurality of memory packets identified by said target memory packet address.
Claim 2
Dependent Claim 232 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution; transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; and processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; wherein the first instruction is retrieved from the one of said plurality of memory packets identified by said target memory packet address.
Claim 3
Dependent Claim 31 words
The computer of claim 1 wherein the first link field contains a link address retrieved from the one of said plurality of memory packets identified by said target memory packet address.
Claim 4
Dependent Claim 34 words
The computer of claim 1 wherein said transmission packet generating means further comprises means responsive to the first instruction for loading a return address into the first register value in the outgoing transmission packet.
Claim 5
Dependent Claim 42 words
The computer of claim 1 wherein said transmission packet generating means further comprises means responsive to the second instruction for loading the first link field with the second register value so that the outgoing transmission packet is directed to a return address.
Claim 6
Dependent Claim 13 words
The computer of claim 1 wherein the communication network is a unidirectional ring.
Claim 7
Dependent Claim 14 words
The computer of claim 1 wherein the processing means comprises an arithmetic logic unit.
Claim 8
Dependent Claim 14 words
The computer of claim 1 wherein each of said memory packets is variable length.
Claim 9
Dependent Claim 14 words
The computer of claim 1 wherein each of said memory packets is fixed length.
Claim 10
Dependent Claim 16 words
The computer of claim 1 wherein said plurality of cells are fabricated on a single wafer.
Claim 11
Dependent Claim 17 words
The computer of claim 1 wherein each of said cells is on a separate integrated circuit chip.
Claim 12
Dependent Claim 39 words
The computer of claim 2 wherein said transmission packet generating means further comprises means responsive to the first instruction for generating a second outgoing transmission packet containing a third instruction, a third register value, and a third link field.
Claim 13
Dependent Claim 29 words
The computer of claim 11 wherein the third link field contains an instruction-generated memory packet address that sequentially and immediately follows said target memory packet address in said memory.
Claim 14
Dependent Claim 313 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution;. transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; and processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; said processing means further comprises means responsive to the second instruction for determining existence of a condition by comparing the data element in the one of said plurality of memory packets identified by said target memory packet address with a compare value and loading the first link field with an instruction-generated memory packet address that sequentially and immediately follows said target memory packet address in said memory when the condition is absent; and loading the first link field with a link address stored in the one of said plurality of memory packets identified by said target memory packet address when the condition exists.
Claim 15
Dependent Claim 313 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution;. transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; and processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; said processing means further comprises means responsive to the second instruction for determining existence of a condition by comparing the data element in the one of said plurality of memory packets identified by said target memory packet address with a compare value and loading the first link field with an instruction-generated memory packet address that sequentially and immediately follows said target memory packet address in said memory when the condition is absent; and loading the first link field with a link address stored in the one of said plurality of memory packets identified by said target memory packet address when the condition exists.
Claim 16
Dependent Claim 25 words
The computer of claim 13 wherein said compare value is a quantity selected from a group consisting of the second register value and a constant.
Claim 17
Dependent Claim 224 words
In a computer comprising a plurality of cells coupled through a communication network, each of said cells having a processor for executing instructions and a memory coupled to the processor, a method of executing a task defined by a computer program comprising the steps of: creating a linked list from a plurality of memory packets by storing a link address in each memory packet of the plurality of memory packets, the linked list specifying an order of instruction execution; fixing cell assignments of the plurality of memory packets when the computer program is compiled such that each of the memory packets is selectively disposed in a particular cell of the plurality of cells; transmitting a first transmission packet to a first cell of the plurality of cells, the first transmission packet containing a first instruction and a first pointer, the first pointer including a first destination cell identifier and a first memory packet address that identify a first memory packet of the plurality of memory packets stored in the first cell; accessing the first memory packet in the first cell using the first memory packet address; executing the first instruction on the processor in the first cell; generating a second transmission packet containing a second instruction and a second pointer; and repeating the transmitting, accessing, executing, and generating steps for the second transmission packet.
Claim 18
Dependent Claim 224 words
In a computer comprising a plurality of cells coupled through a communication network, each of said cells having a processor for executing instructions and a memory coupled to the processor, a method of executing a task defined by a computer program comprising the steps of: creating a linked list from a plurality of memory packets by storing a link address in each memory packet of the plurality of memory packets, the linked list specifying an order of instruction execution; fixing cell assignments of the plurality of memory packets when the computer program is compiled such that each of the memory packets is selectively disposed in a particular cell of the plurality of cells; transmitting a first transmission packet to a first cell of the plurality of cells, the first transmission packet containing a first instruction and a first pointer, the first pointer including a first destination cell identifier and a first memory packet address that identify a first memory packet of the plurality of memory packets stored in the first cell; accessing the first memory packet in the first cell using the first memory packet address; executing the first instruction on the processor in the first cell; generating a second transmission packet containing a second instruction and a second pointer; and repeating the transmitting, accessing, executing, and generating steps for the second transmission packet.
Claim 19
Dependent Claim 60 words
The method of claim 15 wherein said generating step further comprises the step of, in response to the second instruction, generating a third transmission packet containing a third pointer to a second memory packet of the plurality of memory packets having a second memory packet address in the first cell that sequentially and immediately follows the first memory packet address.
Claim 20
Dependent Claim 21 words
The method of claim 15 wherein said executing step uses a data element of the first memory packet as an operand.
Claim 21
Dependent Claim 48 words
The method of claim 17 wherein the second instruction and the second pointer are retrieved from the first memory packet, and wherein the second pointer identifies a second memory packet of the plurality of memory packets and through the second pointer forms a portion of said linked list.
Claim 22
Dependent Claim 16 words
The method of claim 15 wherein the first transmission packet further comprises a first register value.
Claim 23
Dependent Claim 25 words
The method of claim 19 wherein said executing step results in storing the first register value as a data element in the first memory packet.
Claim 24
Dependent Claim 25 words
The method of claim 19 wherein said executing step results in storing the first register value as a third pointer in the first memory packet.
Claim 25
Dependent Claim 16 words
The method of claim 19 wherein the second transmission packet further comprises a second register value.
Claim 26
Dependent Claim 29 words
The method of claim 22 wherein said generating step further comprises the step of, in response to the second instruction, loading a return address as the second register value.
Claim 27
Dependent Claim 34 words
The method of claim 19 wherein said generating step further comprises the step of, in response to the first instruction, loading the first register value as the second pointer in the second transmission packet.
Claim 28
Dependent Claim 86 words
The method of claim 19 wherein said executing step further comprises the step of, in response to the first instruction, determining existence of a condition by comparing a first value and a second value and loading the first destination cell identifier and a second memory packet address that sequentially and immediately follows the first memory packet address as the second pointer when the condition is absent; and loading a third pointer stored in the first memory packet as the second pointer when the condition is present.
Claim 29
Dependent Claim 40 words
The method of claim 25 wherein said first value and second value are quantities selected from a group consisting of: a constant, the first register value in the first transmission packet, and a data element in the first memory packet.
Claim 30
Dependent Claim 301 words
In a computer containing a plurality of cells serially disposed in a communication network, each of the cells having a processor for executing instructions and a memory, a method of executing a task comprising the steps of: assigning a plurality of instructions requiring sequential execution to a plurality of memory packets; creating a linked list from the plurality of memory packets based upon a plurality of pointers held by the plurality of memory packets, one pointer of the plurality of pointers being held by each memory packet of the plurality of memory packets, the linked list defining instruction execution sequence; storing the plurality of memory packets comprising the linked list in the plurality of cells, each cell of the plurality of cells being selectively chosen based on location within the communication network to hold a particular memory packet of the plurality of memory packets to facilitate sequential execution of the plurality of instructions; fetching a first instruction of the plurality of instructions and a first address from a first memory packet of the plurality of memory packets stored in a first cell of the plurality of cells; sending the first instruction and first address from the first cell to a second cell of the plurality of cells in a first transmission packet via the communication network; decoding the first instruction at the second cell while addressing a second memory packet of the plurality of memory packets that is sequentially next in the linked list using the first address, the second memory packet containing a second instruction of the plurality of instructions; executing the first instruction at the second cell; sending the second instruction from the second cell to a third cell of the plurality of cells via the communication network; and decoding and executing the second instruction at the third cell.
Claim 31
Dependent Claim 301 words
In a computer containing a plurality of cells serially disposed in a communication network, each of the cells having a processor for executing instructions and a memory, a method of executing a task comprising the steps of: assigning a plurality of instructions requiring sequential execution to a plurality of memory packets; creating a linked list from the plurality of memory packets based upon a plurality of pointers held by the plurality of memory packets, one pointer of the plurality of pointers being held by each memory packet of the plurality of memory packets, the linked list defining instruction execution sequence; storing the plurality of memory packets comprising the linked list in the plurality of cells, each cell of the plurality of cells being selectively chosen based on location within the communication network to hold a particular memory packet of the plurality of memory packets to facilitate sequential execution of the plurality of instructions; fetching a first instruction of the plurality of instructions and a first address from a first memory packet of the plurality of memory packets stored in a first cell of the plurality of cells; sending the first instruction and first address from the first cell to a second cell of the plurality of cells in a first transmission packet via the communication network; decoding the first instruction at the second cell while addressing a second memory packet of the plurality of memory packets that is sequentially next in the linked list using the first address, the second memory packet containing a second instruction of the plurality of instructions; executing the first instruction at the second cell; sending the second instruction from the second cell to a third cell of the plurality of cells via the communication network; and decoding and executing the second instruction at the third cell.
Claim 32
Dependent Claim 28 words
The method of claim 27 further comprising the step of decoding the second instruction at the second cell to determine whether a new task is to be started.
Claim 33
Dependent Claim 30 words
The method of claim 28 wherein said step of executing the first instruction further comprises the use of a data element contained in the second memory packet as an operand.
Claim 34
Dependent Claim 20 words
The method of claim 29 further comprising the step of simultaneously fetching the second instruction while fetching the data element.
Claim 35
Dependent Claim 53 words
The method of claim 27 further comprising the step of: assigning a priority level to each of the instructions of the plurality of instructions, the priority level dictating order of instruction execution when two or more of the plurality of instructions are awaiting execution in a single cell of said plurality of cells.
Claim 36
Dependent Claim 318 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution; transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; said plurality of incoming transmission packets includes affected incoming transmission packets and unaffected incoming transmission packets, and each of said memory packets contains a lock bit which will force said affected incoming transmission packets to wait an unspecified period of time before being processed; processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; and a receive queue coupled to said input means, said receive queue containing said unaffected and affected incoming transmission packets, each of said unaffected incoming transmission packets having a priority level and being queued in accordance with the priority level such that priority level hierarchy dictates order of incoming transmission packet processing, each of said affected incoming transmission packets being held in a wait state.
Claim 37
Dependent Claim 318 words
A computer comprising: a plurality of cells coupled in a communications network, each of said cells comprising: a memory for storing instructions in a plurality of memory packets, wherein each of said memory packets is associated with a linked list, said linked list specifying an order of instruction execution; transmission packet generating means coupled to said memory for generating an outgoing transmission packet containing a first instruction, a first register value, and a first link field for storing a destination cell specifier and a destination memory packet address; output means coupled to said transmission packet generating means for transmitting the outgoing transmission packet to a cell identified by said destination cell specifier in the outgoing transmission packet; input means coupled to said memory for receiving a plurality of incoming transmission packets, one of said plurality of incoming transmission packets containing a second instruction, a second register value, and a second link field for storing a target memory packet address; said plurality of incoming transmission packets includes affected incoming transmission packets and unaffected incoming transmission packets, and each of said memory packets contains a lock bit which will force said affected incoming transmission packets to wait an unspecified period of time before being processed; processing means coupled to said memory, input means and generating means for processing the one of said plurality of incoming transmission packets by executing the second instruction using a data element contained in one of said plurality of memory packets identified by said target memory packet address as an operand; and a receive queue coupled to said input means, said receive queue containing said unaffected and affected incoming transmission packets, each of said unaffected incoming transmission packets having a priority level and being queued in accordance with the priority level such that priority level hierarchy dictates order of incoming transmission packet processing, each of said affected incoming transmission packets being held in a wait state.
Claim 38
Dependent Claim 47 words
The computer of claim 32 wherein said receive queue comprises a first queue for said affected incoming transmission packets, a second queue for said unaffected incoming transmission packets having a first priority level, and a third queue for unaffected incoming transmission packets having a second priority level.
Claim 39
Dependent Claim 13 words
The computer of claim 32 wherein said receive queue comprises a single queue.
Claim 40
Dependent Claim 14 words
The computer of claim 34 wherein said receive queue comprises a bidirectional shift register.

References Cited (Backward Citations)

US3962706A Cited
US4149240A Cited
US4153932A Cited
US4837676A Cited
US5021947A Cited
US4893234A Cited
US4972315A Cited
US5117489A Cited
US5093919A Cited
US5043880A Cited
US5179685A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-04-03 1998-10-03 1999-04-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-04-03 2002-10-03 2003-04-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-04-03 2006-10-03 2007-04-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag