IP Library Granted Patent US 8,095,702
Granted Patent B2
US 8,095,702 · App. 12/051,275 · Granted Jan 10, 2012

High speed memory access in an embedded system

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 8,095,702
App. No.
12/051,275
Granted
Jan 10, 2012
Kind
B2
Abstract

Data is processed in an embedded system by writing data read from a peripheral device in response to an event to memory external to the embedded system. The data or a portion of the data is copied to memory internal to the embedded system. Which portion of the data is stored in both the external memory and the internal memory is tracked. The copied data is retrieved from the internal memory by a processor included in the embedded system. The processor has one or more caches logically and physically separated from the internal memory. The processor uses the copied data it retrieved to begin servicing the event.

Claims (68)

1. A method of processing data in an embedded system, comprising:

writing data read from a peripheral device in response to an event to memory external to the embedded system;

copying the data or a portion of the data to memory internal to the embedded system;

tracking which portion of the data is stored in both the external memory and the internal memory;

retrieving the copied data from the internal memory by a processor included in the embedded system, the processor having one or more caches logically and physically separated from the internal memory; and

using the copied data retrieved by the processor to begin servicing the event.

2. The method of claim 1 , wherein the data is written to the external memory and the data or a portion of the data is copied to the internal memory in parallel.

3. The method of claim 1 , wherein copying the data or a portion of the data to the internal memory comprises copying the data or a portion of the data from the external memory to the internal memory.

4. The method of claim 1 , wherein copying the data or a portion of the data to the internal memory comprises copying packet header information included with the data to the internal memory.

5. The method of claim 1 , wherein the copied data is written to and retrieved from the internal memory based on a first-in, first-out queuing order.

6. The method of claim 1 , wherein tracking which portion of the data is stored in both the external memory and the internal memory comprises:

updating a multi-entry external memory ingress queue allocated to the peripheral device responsive to the data being written to the external memory and the copied data being written to the internal memory; and

updating a multi-entry internal memory ingress queue responsive to the copied data being written to the internal memory.

7. The method of claim 6 , wherein updating the multi-entry external memory ingress queue comprises:

identifying the first entry of the multi-entry external memory ingress queue that contains invalid data;

identifying the first entry of the multi-entry external memory ingress queue that contains valid data yet to be copied to the internal memory; and

updating the entry of the multi-entry external memory ingress queue in which at least a portion of the data read from the peripheral device is stored.

8. The method of claim 7 , wherein updating the entry of the multi-entry external memory ingress queue in which at least a portion of the data read from the peripheral device is stored comprises:

indicating that the entry contains valid data and the size of the valid data responsive to the data being written to the external memory;

indicating an address of the external memory where a beginning portion of the data is stored;

indicating that the entry contains data copied to the internal memory responsive to the copied data being written to the internal memory; and

indicating that the entry contains invalid data responsive to the processor completing servicing of the event.

9. The method of claim 6 , wherein updating the multi-entry internal memory ingress queue comprises:

identifying the first entry of the internal memory ingress queue that contains invalid data;

identifying the first entry of the internal memory ingress queue that contains valid data yet to be read by the processor; and

updating the entry of the internal memory ingress queue in which at least a portion of the copied data is stored.

10. The method of claim 9 , wherein updating the entry of the internal memory ingress queue in which at least a portion of the copied data is stored comprises:

indicating that the entry contains valid data responsive to the copied data being written to the internal memory;

indicating which entry of the multi-entry external memory ingress queue contains data corresponding to the copied data; and

indicating that the entry contains invalid data responsive to the processor completing servicing of the event.

11. The method of claim 1 , wherein a quantity of the data copied to the internal memory corresponds to a configuration parameter provided to the embedded system.

12. An embedded system, comprising:

an internal memory configured to store data;

a direct memory access controller operable to read data from a peripheral device in response to an event, write the data to memory external to the embedded system and copy the data or a portion of the data to the internal memory;

memory access control logic operable to track which portion of the data is stored in both the external memory and the internal memory; and

a processor having one or more caches logically and physically separated from the internal memory, the processor operable to retrieve the copied data from the internal memory and use the retrieved data to begin servicing the event.

13. The embedded system of claim 12 , wherein the direct memory access controller is operable to write the data to the external memory and write the copied data to the internal memory in parallel.

14. The embedded system of claim 12 , wherein the direct memory access controller is operable to copy the data or a portion of the data from the external memory to the internal memory.

15. The embedded system of claim 12 , wherein the direct memory access controller is operable to copy packet header information included with the data to the internal memory.

16. The embedded system of claim 12 , wherein the direct memory access controller is operable to write the copied data to the internal memory and the processor is operable to retrieve the copied data from the internal memory based on a first-in, first-out queuing order.

17. The embedded system of claim 12 , wherein the memory access control logic is operable to:

update a multi-entry external memory ingress queue allocated to the peripheral device responsive to the data being written to the external memory and the copied data being written to the internal memory; and

update a multi-entry internal memory ingress queue responsive to the copied data being written to the internal memory.

18. The embedded system of claim 17 , wherein the memory access control logic is operable to:

identify the first entry of the multi-entry external memory ingress queue that contains invalid data;

identify the first entry of the multi-entry external memory ingress queue that contains valid data yet to be copied to the internal memory; and

update the entry of the multi-entry external memory ingress queue in which at least a portion of the data read from the peripheral device is stored.

19. The embedded system of claim 18 , wherein the memory access control logic is operable to:

indicate that the entry contains valid data and the size of the valid data responsive to the data being written to the external memory;

indicate an address of the external memory where a beginning portion of the data is stored;

indicate that the entry contains data copied to the internal memory responsive to the copied data being written to the internal memory; and

indicate that the entry contains invalid data responsive to the processor completing servicing of the event.

20. The embedded system of claim 17 , wherein the memory access control logic is operable to:

identify the first entry of the internal memory ingress queue that contains invalid data;

identify the first entry of the internal memory ingress queue that contains valid data yet to be read by the processor; and

update the entry of the internal memory ingress queue in which at least a portion of the copied data is stored.

21. The embedded system of claim 20 , wherein the memory access control logic is operable to:

indicate that the entry contains valid data responsive to the copied data being written to the internal memory;

indicate which entry of the multi-entry external memory ingress queue contains data corresponding to the copied data; and

indicate that the entry contains invalid data responsive to the processor completing servicing of the event.

22. The embedded system of claim 12 , wherein the direct memory access controller is operable to copy a quantity of the data to the internal memory corresponding to a configuration parameter provided to the embedded system.

23. The embedded system of claim 12 , wherein the processor is operable to continue servicing the event based on a remainder of the data retrieved from the external memory.

24. The embedded system of claim 12 , wherein the direct memory access controller and the processor each comprise a different portion of the memory access control logic.

25. An embedded system, comprising:

an internal memory configured to store data;

a direct memory access controller operable to read data from a peripheral device in response to an event, write the data to memory external to the embedded system and copy the data or a portion of the data to the internal memory;

means for tracking which portion of the data is stored in both the external memory and the internal memory; and

a processor having one or more caches logically and physically separated from the internal memory, the processor operable to retrieve the copied data from the internal memory and use the retrieved data to begin servicing the event.

Assignments (8)
CHANGE OF NAME Recorded Apr 6, 2022
From: LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: INTEL GERMANY GMBH & CO. KG
Reel/Frame 059645/0263 →
MERGER AND CHANGE OF NAME Recorded Jan 17, 2018
From: LANTIQ DEUTSCHLAND GMBH; LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 045085/0292 →
MERGER Recorded Dec 18, 2017
From: LANTIQ DEUTSCHLAND GMBH
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 044907/0045 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 025413/0340 AND 025406/0677 Recorded Apr 17, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 035453/0712 →
GRANT OF SECURITY INTEREST IN U.S. PATENTS Recorded Nov 29, 2010
From: LANTIQ DEUTSCHLAND GMBH
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 025406/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2010
From: INFINEON TECHNOLOGIES WIRELESS SOLUTIONS GMBH
To: LANTIQ DEUTSCHLAND GMBH
Reel/Frame 024529/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2010
From: INFINEON TECHNOLOGIES AG
To: INFINEON TECHNOLOGIES WIRELESS SOLUTIONS GMBH
Reel/Frame 024483/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2008
From: HU, CHUNFENG
To: INFINEON TECHNOLOGIES AG
Reel/Frame 020673/0574 →