IP Library Granted Patent US 10,664,407
Granted Patent B2
US 10,664,407 · App. 15/992,725 · Granted May 26, 2020

Dual first and second pointer for memory mapped interface communication with lower indicating process

Inventors: Anant Raj Gupta (Singapore, SG); Ingo Volkening (Singapore, SG); Jun Ye Zhou (Singapore, SG)
Assignee: Intel Corporation
G06F12/10G06F3/0656G06F5/12G06F13/1673G06F13/4282G06F2212/1008G06F2213/0026
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,664,407
App. No.
15/992,725
Granted
May 26, 2020
Kind
B2
Abstract

A set of data entries is transferred via a memory mapped interface from an external peripheral device to a processor device and is stored in a shared memory region. Based on a first pointer to the shared memory region, a first process executed by the processor device processes a first group of the data entries. Based on a second pointer to the shared memory region, a second process executed by the processor device processes a second group of the data entries. The second process indicates the second pointer to the first process. The first process indicates a lower one of the first pointer and the second pointer to the peripheral device.

Claims (73)

1. A method of communicating data, the method comprising:

a processor device storing a set of data entries in a shared memory region, the data entries being transferred via a memory mapped interface from an external peripheral device;

based on a first pointer to the shared memory region, a first process executed by the processor device processing a first group of the data entries;

based on a second pointer to the shared memory region, a second process executed by the processor device processing a second group of the data entries;

the second process indicating the second pointer to the first process; and

the first process indicating a lower one of the first pointer and the second pointer to the peripheral device;

wherein said processing of the first group of the data entries by the first process and said processing of the second group of the data entries by the second process are simultaneously triggered by an interrupt generated by the peripheral device.

2. The method according to claim 1 , comprising:

in response to completing processing of each data entry of the second group, the second process indicating the second pointer to the first process.

3. The method according to claim 1 , comprising:

in response to processing of the data entries of the first group being finished, the first process indicating the lower one of the first pointer and the second pointer to the peripheral device.

4. The method according to claim 1 ,

wherein said processing of the first group of the data entries by the first process and said processing of the second group of the data entries by the second process is performed simultaneously.

5. The method according to claim 1 ,

wherein said processing of the first group of the data entries by the first process and said processing of the second group of the data entries by the second process are triggered by a first interrupt message from the peripheral device to one of the first process and the second process, and a second interrupt message from said one of the first process and the second process to the other of the first process and the second process.

6. The method according to claim 1 ,

wherein the shared memory region is configured as a ring buffer.

7. The method according to claim 1 ,

wherein one of the first process and the second process comprises a data reception process; and

wherein the other one of the first process and the second process comprises a data sending process.

8. The method according to claim 1 ,

wherein the peripheral device is a networking device.

9. The method according to claim 1 ,

wherein the indicated lower one of the first pointer and the second pointer is to be used by the peripheral device for controlling writing of further data entries into the shared memory region.

10. The method according to claim 1 ,

wherein the memory mapped interface is based on a Peripheral Component Interconnect Express, PCIe, interface or an Advanced Microcontroller Bus Architecture, AMBA, interface.

11. A processor device, comprising:

a memory;

a memory mapped interface to an external peripheral device; and

at least one processor configured to execute a first process and a second process;

the memory being configured to store a set of data entries in a shared memory region, the data entries being transferred via the memory mapped interface from the peripheral device;

the first process being configured to process a first group of the data entries based on a first pointer to the shared memory region;

the second process being configured to process a second group of the data entries based on a second pointer to the shared memory region;

the second process being configured to indicate the second pointer to the first process;

the first process being configured to indicate a lower one of the first pointer and the second pointer to the peripheral device; and

the peripheral device being configured to simultaneously trigger processing of the first group of the data entries by the first process and processing of the second group of the data entries by the second process by an interrupt.

12. The processor device according to claim 11 ,

wherein the second process is configured to, in response to completing processing of each data entry of the second group, indicate the second pointer to the first process.

13. The processor device according to claim 11 ,

wherein the first process is configured to, in response to processing of the data entries of the first group being finished, indicate the lower one of the first pointer and the second pointer to the peripheral device.

14. The processor device according to claim 11 ,

wherein said processing of the first group of the data entries by the first process and said processing of the second group of the data entries by the second process is performed simultaneously.

15. The processor device according to claim 11 ,

wherein said processing of the first group of the data entries by the first process and said processing of the second group of the data entries by the second process are triggered by a first interrupt message from the peripheral device to one of the first process and the second process, and a second interrupt message from said one of the first process and the second process to the other of the first process and the second process.

16. The processor device according to claim 11 ,

wherein the shared memory region is configured as a ring buffer.

17. The processor device according to claim 11 ,

wherein one of the first process and the second process comprises a data reception process; and

wherein the other one of the first process and the second process comprises a data sending process.

18. The processor device according to claim 11 ,

wherein the peripheral device is a networking device.

19. The processor device according to claim 11 ,

wherein the indicated lower one of the first pointer and the second pointer is to be used by the peripheral device for controlling writing of further data entries into the shared memory region.

20. The processor device according to claim 11 ,

wherein the memory mapped interface is based on a Peripheral Component Interconnect Express, PCIe, interface or an Advanced Microcontroller Bus Architecture, AMBA, interface.

21. A system, comprising:

a processor device; and

an external peripheral device,

the processor device comprising a memory, a memory mapped interface to the external peripheral device, and at least one processor configured to execute a first process and a second process;

the memory being configured to store a set of data entries in a shared memory region, the data entries being transferred via the memory mapped interface from the peripheral device;

the first process being configured to process a first group of the data entries based on a first pointer to the shared memory region;

the second process being configured to process a second group of the data entries based on a second pointer to the shared memory region;

the second process being configured to indicate the second pointer to the first process;

the first process being configured to indicate a lower one of the first pointer and the second pointer to the peripheral device; and

the peripheral device being configured to simultaneously trigger processing of the first group of the data entries by the first process and processing of the second group of the data entries by the second process by an interrupt.

22. A non-transitory computer readable medium comprising instructions to be executed by at least one processor of a processor device, wherein execution of the instructions causes the processor device to:

store a set of data entries in a shared memory region, the data entries being transferred via a memory mapped interface from an external peripheral device

execute a first process and a second process;

the first process being configured to process a first group of the data entries based on a first pointer to the shared memory region;

the second process being configured to process a second group of the data entries based on a second pointer to the shared memory region;

the second process being configured to indicate the second pointer to the first process;

the first process being configured to indicate a lower one of the first pointer and the second pointer to the peripheral device; and

the peripheral device being configured to simultaneously trigger processing of the first group of the data entries by the first process and processing of the second group of the data entries by the second process by an interrupt.

Assignments (3)
SECURITY AGREEMENT Recorded Jul 9, 2021
From: MAXLINEAR, INC.; MAXLINEAR COMMUNICATIONS, LLC; EXAR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 056816/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2020
From: INTEL CORPORATION
To: MAXLINEAR, INC.
Reel/Frame 053626/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2018
From: GUPTA, ANANT RAJ; VOLKENING, INGO; ZHOU, JUN YE
To: INTEL CORPORATION
Reel/Frame 046788/0483 →
Priority Claims (1)
EP 17179112 · Jun 30, 2017 · regional
Continuity (1)
Related Publication 20190004963A1 · Jan 3, 2019
Cited By (1)
US 12,704,966