Processor core to coprocessor interface with FIFO semantics
First Claim
Patent Images
1. A method comprising:
- storing an unallocated linked list that contains a first plurality of content nodes that initially do not contain content for a first-in first-out (FIFO) of pending work for a second processor;
storing, in a first content node of the first plurality of content nodes, a pointer that points to a second content node of the first plurality of content nodes;
storing an allocated linked list that contains a second plurality of content nodes that contain content for the FIFO;
sending, by a first processor, a first hardware signal that indicates that content is available for appending onto the FIFO, wherein said content comprises a memory pointer that identifies, or a descriptor that describes, a unit of work for the second processor;
in response to said first hardware signal;
assigning a second pointer, in a third content node in the second plurality of content nodes that contain content for the FIFO in the allocated linked list, to point to the second content node, andcopying said content into said second content node;
sending, by the second processor, a second hardware signal that indicates that said content is transferred into said FIFO,wherein the method is performed by a computing device that contains the FIFO, the first processor, and the second processor.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for exchanging dedicated hardware signals to manage a first-in first-out (FIFO). In an embodiment, a first processor initiates content transfer into the FIFO. The first processor activates a first hardware signal that is reserved for indicating that content resides within the FIFO. A second processor activates a second hardware signal that is reserved for indicating that content is accepted. The second hardware signal causes the first hardware signal to be deactivated. This exchange of hardware signals demarcates a FIFO transaction, which is mediated by interface circuitry of the FIFO.
169 Citations
20 Claims
-
1. A method comprising:
-
storing an unallocated linked list that contains a first plurality of content nodes that initially do not contain content for a first-in first-out (FIFO) of pending work for a second processor; storing, in a first content node of the first plurality of content nodes, a pointer that points to a second content node of the first plurality of content nodes; storing an allocated linked list that contains a second plurality of content nodes that contain content for the FIFO; sending, by a first processor, a first hardware signal that indicates that content is available for appending onto the FIFO, wherein said content comprises a memory pointer that identifies, or a descriptor that describes, a unit of work for the second processor; in response to said first hardware signal; assigning a second pointer, in a third content node in the second plurality of content nodes that contain content for the FIFO in the allocated linked list, to point to the second content node, and copying said content into said second content node; sending, by the second processor, a second hardware signal that indicates that said content is transferred into said FIFO, wherein the method is performed by a computing device that contains the FIFO, the first processor, and the second processor. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
a second processor blocking said second processor until a first-in first-out (FIFO) contains an amount of content that exceeds a software-configurable threshold; sending, by a first processor, a first hardware signal that indicates that content is available for appending said FIFO; in response to said first hardware signal, transferring said content into said FIFO by a computing device that contains the FIFO, the first processor, and the second processor; sending, by said second processor, a second hardware signal that indicates that said content is transferred into said FIFO. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause:
-
storing an unallocated linked list that contains a first plurality of content nodes that initially do not contain content for a first-in first-out (FIFO) of pending work for a second processor; storing, in a first content node of the first plurality of content nodes, a pointer that points to a second content node of the first plurality of content nodes; storing an allocated linked list that contains a second plurality of content nodes that contain content for the FIFO; sending, by a first processor, a first hardware signal that indicates that content is available for appending onto the FIFO, wherein said content comprises a memory pointer that identifies, or a descriptor that describes, a unit of work for the second processor; in response to said first hardware signal; assigning a second pointer, in a third content node in the second plurality of content nodes that contain content for the FIFO in the allocated linked list, to point to the second content node, and copying said content into said second content node; sending, by the second processor, a second hardware signal that indicates that said content is transferred into said FIFO. - View Dependent Claims (15, 16, 17)
-
-
18. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause:
-
a second processor blocking said second processor until said FIFO contains an amount of content that exceeds a software-configurable threshold; sending, by a first processor, a first hardware signal that indicates that content is available for appending said FIFO; in response to said first hardware signal, transferring said content into said FIFO; sending, by said second processor, a second hardware signal that indicates that said content is transferred into said FIFO. - View Dependent Claims (19, 20)
-
Specification