IP Library Granted Patent US 10,762,013
Granted Patent B2
US 10,762,013 · App. 16/532,193 · Granted Sep 1, 2020

Driver for network timing systems

Inventors: Sita Rama Chandrasekhar Mallela (Tanjung Bungah, MY); Yu Ying Choo (Klang, MY)
Assignee: Altera Corporation
G06F13/32G06F13/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,762,013
App. No.
16/532,193
Granted
Sep 1, 2020
Kind
B2
Abstract

Devices and methods of providing drivers for software and hardware systems to avoid additional polling or interrupt mechanisms are provided. An electronic device includes a processor supporting a device driver to perform a data packet receiving operation or data packet transmission operation. The device driver causes the processor to receive one or more data packets to a port of the processor according to a time-synchronization protocol. The device driver polls the DMA feature for a completion status of the storing. The device driver causes the processor to determine a timestamp of the one or more data packets and to complete the data packet receiving operation without the device driver causing the processor to perform a polling operation or an interrupt operation to retrieve the timestamp of the one or more data packets.

Claims (37)

1. An electronic device, comprising:

processing circuitry; and

a device driver configured to perform a data packet receiving operation, wherein the device driver causes the processing circuitry to:

receive one or more data packets according to a time-synchronization protocol;

store data of the one or more data packets into one or more socket buffers supported by the processing circuitry;

determine a timestamp of when the one or more data packets were sent by performing a read-ahead technique;

set a completion status bit in response to the device driver determining that storing the data of the one or more data packets into the one or more socket buffers is complete; and

perform an input/output read operation comprising supplying the timestamp of the one or more data packets that was determined by performing the read-ahead technique.

2. The electronic device of claim 1 , wherein the one or more data packets are sent by a second electronic device, and wherein the timestamp corresponds to when the one or more data packets were sent by the second electronic device.

3. The electronic device of claim 1 , wherein the device driver performs the read-ahead technique independently of the input/output read operation.

4. The electronic device of claim 1 , wherein the device driver performs the read-ahead technique by pre-fetching the timestamp from a first-in-out-out component that stores the timestamp of the one or more data packets.

5. The electronic device of claim 1 , wherein the device driver causes the processing circuitry to pre-fetch additional information from the one or more data packets, wherein the additional information comprises metadata.

6. The electronic device of claim 1 , wherein the time-synchronization protocol comprises the Institute of Electrical and Electronics Engineers 1588 Precision Timing Protocol.

7. The electronic device of claim 1 , wherein the time-synchronization protocol comprises the Network Timing Protocol.

8. The electronic device of claim 1 , wherein performing the read-ahead technique is configured to decrease a delay with respect to performing the data packet receiving operation.

9. The electronic device of claim 1 , wherein performing the read-ahead technique is configured to increase a deterministic latency with respect to performing the data packet receiving operation.

10. An electronic device, comprising:

processing circuitry; and

a device driver configured to perform a data packet transmission operation according to a time-synchronization protocol, wherein the device driver causes the processing circuitry to:

store one or more data packets into one or more buffers supported by the processing circuitry;

transmit the one or more data packets from the one or more buffers via a conductor;

determine that a first-in-first-out component is not-empty;

perform a read-ahead technique to obtain a timestamp of the one or more data packets, in response to determining that the first-in-first-out component is not-empty; and

perform an input/output read operation after a determined delay following the transmission of the one or more data packets from the one or more buffers via the conductor, wherein the input/output read operation comprises supplying the timestamp of the one or more data packets that was determined by utilizing the first-in-first-out component.

11. The electronic device of claim 10 , wherein the read-ahead technique comprises pre-fetching the timestamp of the one or more data packets.

12. The electronic device of claim 10 , wherein performing the read-ahead technique occurs independently of performing the input/output read operation.

13. The electronic device of claim 10 , wherein the device driver causes the processing circuitry to pre-fetch additional information from the one or more data packets, wherein the additional information comprise metadata.

14. The electronic device of claim 10 , wherein the device driver performs the read-ahead technique to decrease a delay with respect to performing the data packet transmission operation.

15. The electronic device of claim 10 , wherein the device driver performs the read-ahead technique to increase a deterministic latency with respect to performing the data packet transmission operation.

16. The electronic device of claim 10 , wherein the determined delay comprises a predetermined worst-case delay.

17. The electronic device of claim 16 , wherein the predetermined worst-case delay is based on at least a maximum data packet size.

18. A non-transitory computer-readable medium having computer-executable code stored thereon, the computer-executable code comprising instructions configured to cause one or more processors supporting a device driver that performs functions associated with an application running on an electronic device that transmits and receives data packets to:

determine that a first-in-first-out component of the device driver is not-empty, wherein the first-in-first-out component stores timestamps of the data packets;

pre-fetch the timestamps of the data packets stored in the first-in-first-out component upon determining that the first-in-first-out component is not-empty; and

perform a data packet receiving operation or transmission operation to decrease a delay with respect to the application or the electronic device.

19. The non-transitory computer-readable medium of claim 18 , wherein the one or more processors perform the data packet receiving operation or transmission operation to decrease a delay variation with respect to the application or the electronic device.

20. The non-transitory computer-readable medium of claim 18 , wherein the first-in-first-out component is further configured to store additional information of the data packets, wherein the computer-executable code comprises instructions to cause the one or more processors to pre-fetch the additional information from the data packets, wherein the additional information comprises metadata.

Assignments (1)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
Cited By (1)
US 12,231,529