VIRTUALIZED COMMUNICATION SOCKETS FOR MULTI-FLOW ACCESS TO MESSAGE CHANNEL INFRASTRUCTURE WITHIN CPU
First Claim
1. A method to process two tasks in a processor-based system, the two tasks being executed as part of a portable machine code (pcode) executed by the processor-based system, the method comprising:
- executing a data preparation portion of a first task, the first task comprising the data preparation, issuance of a message channel transaction, and results processing;
sending a function to a processor in the processor-based system, wherein the function causes the message channel transaction to be queued by a message channel driver; and
executing a second task, the second task comprising no message channel transaction, wherein the second task is executed irrespective of whether the message channel transaction of the first task is completed;
wherein the message channel driver, upon receiving a hardware event, transfers the message channel transaction from a virtual message channel to a message channel where the message channel transaction is carried by the message channel to an endpoint.
1 Assignment
0 Petitions
Accused Products
Abstract
A message channel optimization method and system enables multi-flow access to the message channel infrastructure within a CPU of a processor-based system. A user (pcode) employs a virtual channel to submit message channel transactions, with the message channel driver processing the transaction “behind the scenes”. The message channel driver thus allows the user to continue processing without having to block other transactions from being processed. Each transaction will be processed, either immediately or at some future time, by the message channel driver. The message channel optimization method and system are useful for tasks involving message channel transactions as well as non-message channel transactions.
6 Citations
20 Claims
-
1. A method to process two tasks in a processor-based system, the two tasks being executed as part of a portable machine code (pcode) executed by the processor-based system, the method comprising:
-
executing a data preparation portion of a first task, the first task comprising the data preparation, issuance of a message channel transaction, and results processing; sending a function to a processor in the processor-based system, wherein the function causes the message channel transaction to be queued by a message channel driver; and executing a second task, the second task comprising no message channel transaction, wherein the second task is executed irrespective of whether the message channel transaction of the first task is completed; wherein the message channel driver, upon receiving a hardware event, transfers the message channel transaction from a virtual message channel to a message channel where the message channel transaction is carried by the message channel to an endpoint. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A processor-based system comprising:
-
a central processing unit (CPU), a first endpoint, and a second endpoint; a message channel to enable communication between the first endpoint and the second endpoint; a message channel driver to interface between one or more virtual message channels of the first endpoint and the message channel; and a plurality of users, each user to represent a portion of the portable machine code (pcode) flow through the processor-based system, a virtual channel identifier (VCID) to be assigned to each user that uses the message channel, wherein each pcode flow with a VCID is capable of registering a callback address; wherein each user with a VCID can submit one message channel transaction for processing. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
wherein the API functions and helper functions assist with message channel transactions.
-
-
9. The processor-based system of claim 8, wherein each user interfaces with the message channel driver via the API functions and the message channel driver interfaces with the CPU.
-
10. The processor-based system of claim 8, the API functions further comprising:
-
a first API function to determine whether the virtual channel is busy or idle, wherein a VOID for a particular user is provided as input to the first API function; a second API function to return contents of the virtual message channel specified by the VOID; a third API function to send a message on the message channel using the virtual message channel specified by the VOID; a fourth API function to send a power management request message on the message channel using the virtual message channel specified by the VOID; wherein the API functions are used by both the users and the message channel driver.
-
-
11. The processor-based system of claim 8, the helper functions further comprising:
-
a first helper function to enable the message channel driver to send data to the message channel; and a second helper function to enable the message channel driver to poll the physical message channel for completion of an operation; wherein the first and second helper functions are used by the message channel driver and not by the user.
-
-
12. The processor-based system of claim 6, further comprising:
a queue available to the message channel driver, the queue to store transactions that are waiting to be processed.
-
13. The processor-based system of claim 12, wherein the queue is a first-in-first-out queue.
-
14. The processor-based system of claim 6, the message channel driver to:
-
execute a data preparation portion of a first task, the first task comprising the data preparation, issuance of a message channel transaction, and results processing; send a function to the CPU, wherein the function causes the message channel transaction to be queued by the message channel driver; and execute a second task, the second task comprising no message channel transaction, wherein the second task is executed irrespective of whether the message channel transaction of the first task is completed; wherein the message channel driver, upon receiving a hardware event, transfers the message channel transaction from one of the one or more virtual message channels to the message channel where the message channel transaction is carried by the message channel to the second endpoint.
-
-
15. The processor-based system of claim 6, further comprising:
-
a second CPU; and a quick path interconnect (QPI) bus coupled between the CPU and the second CPU.
-
-
16. An apparatus, comprising:
-
transaction means to initiate a message channel transaction to a virtual message channel and to register a callback address; driver means to queue the message channel transaction by the user and, in response to the message channel being available, to transfer the message from the virtual message channel to the message channel; channel means to process the message; callback means to cause the driver means to register an event to cause a kernel to run a callback function to the callback address; and completion means to complete the message channel transaction. - View Dependent Claims (17, 18, 19, 20)
-
Specification