Prioritizing data transfers over data buses
AssigneeIntel Corporation
InventorMark L. Skarpness
Life of this patent
Estimating the term…
Abstract
A computer system includes a host processor and a peripheral device coupled by an attachment bus. The peripheral device transfers data to the host processor over the attachment bus using at least two types of data transfers. The peripheral device includes a classifying circuit that separates the data into a first class associated with a first type of transfer and a second class associated with a second type of transfer. The peripheral circuit also includes two queues, including a first queue that receives the first class of data from the classifying circuit and a second queue that receives the second class of data from the classifying circuit. A control circuit places data from the first queue onto the bus at a higher priority than data from the second queue is placed onto the bus.
Claims18
A computer system, comprising:
- a peripheral device;
- a host device;
- a data bus in communication with the peripheral device and the host device, wherein the computer system further includes:
- a traffic classifier having a memory to store a priority level associated with virtual channel information of a data packet, the traffic classifier configured to:
- place data packets into a plurality of data queues including a first queue and a different queue, the traffic classifier places data packets based on a traffic classification of the data packets and with the traffic classification of the data packets indicative of a priority of the data packets, and with the first queue associated with a highest priority traffic classification;
- and
- determine the traffic classification of the data packets based at least in part on at least one of a virtual channel identifier and a virtual path identifier of the data packet;
- and
- a controller configured to control flow of data from the plurality of data queues to the data bus during data placement time cycles, wherein the controller is configured to place at least some data from the first queue on the data bus during each data placement time cycle when the first queue includes at least some data to be transmitted on the data bus, and the controller is further configured to place data from the different queue on the data bus when the first queue does not include data to be transmitted on the data bus.
A method comprising:
- receiving data packets from a network at a peripheral device included in a computer system;
- determining a traffic classification of the data packets to be one of a traffic classification included in a range from a highest priority traffic classification to a lowest priority traffic classification, the traffic classification based at least in part on at least one of a virtual channel identifier and a virtual path identifier of a data packet;
- storing, in a memory, a priority level associated with virtual channel information of a data packet;
- if the traffic classification of the data packets is a highest priority traffic classification, placing the data packets in a first queue of a plurality of queues;
- if the traffic classification of the data packets is not the highest priority traffic classification, placing the data packets in a different queue of the plurality of queues;
- and
- transmitting the data packets from the first queue and the different queue to a host device;
- wherein the transmitting comprises:
- during each of a plurality of data transfer time cycles, placing at least some data from the first queue on a data bus in communication with the host device and the peripheral device until the first queue does not include data to be transmitted to the host device, and placing data from the different queue on the data bus when the first queue does not include data to be transmitted on the data bus.
A method comprising:
- receiving data packets to be transmitted to a network using a peripheral device included in a computer system;
- determining a traffic classification of the data packets, the traffic classification based at least in part on at least one of a virtual channel identifier and a virtual path identifier of a data packet;
- storing, in a memory, a priority level associated with virtual channel information of a data packet;
- if the traffic classification of the data packets is a highest priority traffic classification, placing the data packets in a first queue of a plurality of queues;
- if the traffic classification of the data packets is not the highest priority traffic classification, placing the data packets in a different queue of the plurality of queues;
- and
- transmitting the data packets from the first queue and the different queue to the peripheral device;
- wherein the transmitting comprises:
- during each of a plurality of data transfer time cycles, placing at least some data from the first queue on a data bus in communication with the plurality of queues and the peripheral device until the first queue does not include data to be transmitted to the peripheral device, and placing data from the different queue on the data bus when the first queue does not include data to be transmitted on the data bus.
Dependencies are inferred from the claim text.