IP Library Granted Patent US 10,540,277
Granted Patent B2
US 10,540,277 · App. 15/026,586 · Granted Jan 21, 2020

Method and apparatus for supporting the use of interleaved memory regions

Inventors: Michael Soulie (Chirens, FR); Riccardo Locatelli (Fontanil, FR); Valerio Catalano (Meylan, FR); Giuseppe Maruccia (Grenoble, FR); Giuseppe Guarnaccia (Augusta, IT); Raffaele Guarrasi (Grenoble, FR)
Assignees: STMICROELECTRONICS (GRENOBLE 2) SAS; STMICROELECTRONICS S.R.L.
G06F12/0607G06F15/7825G06F17/5077G06F2212/656
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,540,277
App. No.
15/026,586
Granted
Jan 21, 2020
Kind
B2
Abstract

A method comprising: receiving a transaction associated with an address and having a transaction destination, said address being in an interleaved region of a memory; determining one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations; and associating routing information to said transaction, said routing information associated with the determined destination.

Claims (94)

1. A method comprising:

receiving a transaction associated with an address, the transaction having a transaction destination, said address identifying a location in an interleaved region of a memory;

determining one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

associating routing information to said transaction, said routing information associated with the determined one of the plurality of destinations; and

accessing a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and the method comprises using the address associated with the transaction at said determined destination to access said memory location associated with said address, wherein,

the interleaved memory region is defined by a step size representing a size of an address range that is contiguously mapped;

determining one of said plurality of destinations is dependent on one or more of the address, the step size, the number of destinations and an offset; and

said determining one of said plurality of destinations comprises:

calculating the determined one of the plurality of destinations as:

(the address[log 2(MCChS)−1, log 2(the step size)]+the offset) modulo the number of destinations, where MCChS is a maximum common channel size.

2. The method as claimed in claim 1 , wherein said memory comprises a plurality of interleaved memory regions.

3. The method as claimed in claim 1 , wherein the interleaved memory region is defined by at least one of a start address and an end address.

4. The method as claimed in claim 1 wherein the interleaved memory region size is an integer multiplied by said step size multiplied by a number of said destinations.

5. A method, comprising:

receiving a transaction associated with an address, the transaction having a transaction destination, said address identifying a location in an interleaved region of a memory;

determining one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

associating routing information to said transaction, said routing information associated with the determined one of the plurality of destinations; and

accessing a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and the method comprises using the address associated with the transaction at said determined destination to access said memory location associated with said address, wherein,

the interleaved memory region is defined by a step size representing a size of an address range that is contiguously mapped;

determining one of said plurality of destinations is dependent on one or more of the address, the step size, the number of destinations and an offset; and

determining one of said plurality of destinations comprises:

if the number of destinations is a power of 2, calculating the determined one of the plurality of destinations as:

(the address[log 2(the step size)+log 2(the number of destinations)−1, log 2(the step size)]+the offset) modulo the number of destinations.

6. The method as claimed in claim 1 , wherein each interleaved memory region is viewed as part of a respective channel from a source of said transaction.

7. The method as claimed in claim 1 , wherein each destination of said plurality of destinations comprises a channel.

8. The method as claimed in claim 1 , wherein each destination of said plurality of destinations comprises a memory controller.

9. The method as claimed in claim 1 , comprising receiving a transaction, and determining if an address associated with said transaction is in an interleaved memory region.

10. The method as claimed in claim 1 , comprising:

routing said transaction through an interconnect using said routing information.

11. The method as claimed in claim 10 , wherein said interconnect is a network on chip.

12. An apparatus, comprising:

an input configured to receive a transaction associated with an address, the address having a transaction destination, said address identifying a location in an interleaved region of a memory; and

a controller, said controller configured to:

determine one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

associate routing information to said transaction, said routing information associated with the determined one of the plurality of destinations; and

access a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and said one of the plurality of destinations is arranged to use the address associated with the transaction at said determined destination to access said memory location associated with said address, wherein,

the interleaved memory region is defined by a step size representing a size of an address range that is contiguously mapped;

said controller is configured to determine the one of said plurality of destinations dependent on one or more of the address, the step size, the number of destinations and an offset; and

said controller is configured to determine the one of said plurality of destinations, when the number of destinations is a power of 2, as:

(the address[log 2(the step size)+log 2(the number of destinations)−1, log 2(the step size)]+the offset) modulo the number of destinations.

13. The apparatus as claimed in claim 12 , wherein said determined one of the plurality of destinations is identical to the transaction destination.

14. The apparatus as claimed in claim 12 , wherein said memory comprises a plurality of interleaved memory regions.

15. The apparatus as claimed in claim 12 , wherein the interleaved memory region is defined by at least one of a start address and an end address.

16. The apparatus as claimed in claim 12 , wherein the interleaved memory region size is an integer multiplied by said step size multiplied by a number of said destinations.

17. An apparatus, comprising:

an input configured to receive a transaction associated with an address, the address having a transaction destination, said address identifying a location in an interleaved region of a memory; and

a controller, said controller configured to:

determine one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

associate routing information to said transaction, said routing information associated with the determined one of the plurality of destinations; and

access a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and said one of the plurality of destinations is arranged to use the address associated with the transaction at said determined destination to access said memory location associated with said address, wherein,

the interleaved memory region is defined by a step size representing a size of an address range that is contiguously mapped;

said controller is configured to determine the one of said plurality of destinations dependent on one or more of the address, the step size, the number of destinations and an offset; and

said controller is configured to determine the one of said plurality of destinations as:

(the address[log 2(MCChS)−1, log 2(the step size)]+the offset) modulo the number of destinations, where MCChS is a maximum common channel size.

18. The apparatus as claimed in claim 12 , wherein each interleaved memory region is viewed as part of a respective channel from a source of said transaction.

19. The apparatus as claimed in claim 12 , wherein each destination of said plurality of destinations comprises a channel.

20. The apparatus as claimed in claim 12 , wherein each destination of said plurality of destinations comprises a memory controller.

21. The apparatus as claimed in claim 12 , wherein said controller is configured to determine if an address associated with said transaction is in an interleaved memory region.

22. The apparatus as claimed in claim 12 , wherein said apparatus is an interconnect configured to route said transaction through said interconnect using said routing information.

23. An apparatus as claimed in claim 22 , wherein said interconnect is a network on chip.

24. An apparatus as claimed in claim 12 , wherein said apparatus is arranged for operation within a network interface.

25. An apparatus as claimed in claim 12 , wherein said apparatus is formed on a die of an integrated circuit.

26. A computer aided design tool configured to perform a method to configure a device, the method comprising:

generating computer code to represent a default version of the device;

modifying the computer code to configure the device to receive a transaction associated with an address, the transaction having a transaction destination, said address identifying a location in an interleaved region of a memory;

modifying the computer code to configure the device to determine one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

modifying the computer code to associate routing information to said transaction, said routing information associated with the determined one of the plurality of destinations;

modifying the computer code to configure the device to access a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and the accessing the memory location comprises using the address associated with the transaction at said determined destination to access said memory location associated with said address; and

modifying the computer code to configure the device to calculate the determined one of the plurality of destinations as:

(the address[log 2(MCChS)−1, log 2(a step size)]+an offset) modulo the number of destinations, where MCChS is a maximum common channel size.

27. The computer aided design tool of claim 26 configured to perform the method to configure the device, wherein said memory comprises a plurality of interleaved memory regions.

28. A computer aided design tool configured to perform a method to configure a device, the method comprising:

generating computer code to represent a default version of the device;

modifying the computer code to configure the device to receive a transaction associated with an address, the transaction having a transaction destination, said address identifying a location in an interleaved region of a memory;

modifying the computer code to configure the device to determine one of a plurality of destinations for said transaction, different parts of said interleaved memory region being respectively accessible by said plurality of destinations;

modifying the computer code to associate routing information to said transaction, said routing information associated with the determined one of the plurality of destinations;

modifying the computer code to configure the device to access a memory location associated with said address, wherein said determined one of the plurality of destinations is different from the transaction destination and the accessing the memory location comprises using the address associated with the transaction at said determined destination to access said memory location associated with said address; and

modifying the computer code to configure the device to calculate, if the number of destinations is a power of 2, the determined one of the plurality of destinations as:

(the address[log 2(a step size)+log 2(the number of destinations)−1, log 2(the step size)]+an offset) modulo the number of destinations.

29. The computer aided design tool of claim 26 configured to perform the method to configure the device, wherein said channel information comprises at least one of channel position, channel number, interleaving step size, and quality of service.

30. The computer aided design tool of claim 26 configured to perform the method to configure the device, wherein generating computer code to represent the default version of the device includes generating the device with:

at least two network interfaces;

at least two routers;

at least two links configured to pass packet-based communications, the at least two links coupling the at least two network interfaces through the at least two routers.

31. The computer aided design tool of claim 26 configured to perform the method to configure the device, wherein said default version of the device is a network interface.

32. The computer aided design tool of claim 26 configured to perform the method to configure the device, wherein said default version of the device is an integrated circuit.

33. The apparatus as claimed in claim 17 , wherein said determined one of the plurality of destinations is identical to the transaction destination.

34. The apparatus as claimed in claim 17 , wherein said memory comprises a plurality of interleaved memory regions.

35. The apparatus as claimed in claim 17 , wherein the interleaved memory region is defined by at least one of a start address and an end address.

36. The apparatus as claimed in claim 17 , wherein the interleaved memory region size is an integer multiplied by said step size multiplied by a number of said destinations.

37. The apparatus as claimed in claim 17 , wherein each destination of said plurality of destinations comprises a channel.

38. The apparatus as claimed in claim 17 , wherein each destination of said plurality of destinations comprises a memory controller.

39. The apparatus as claimed in claim 17 , wherein said apparatus is an interconnect configured to route said transaction through said interconnect using said routing information.

40. The apparatus as claimed in claim 17 , wherein said controller is configured to determine if an address associated with said transaction is in an interleaved memory region.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: STMICROELECTRONICS (GRENOBLE 2) SAS
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 060475/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: STMICROELECTRONICS S.R.L.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 060301/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2016
From: GUARNACCIA, GIUSEPPE
To: STMICROELECTRONICS S.R.L.
Reel/Frame 038173/0533 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2016
From: SOULIE, MICHAEL; LOCATELLI, RICCARDO; CATALANO, VALERIO; MARUCCIA, GIUSEPPE; GUARRASI, RAFFAELE
To: STMICROELECTRONICS (GRENOBLE 2) SAS
Reel/Frame 038173/0598 →
Priority Claims (1)
GB 1318476.7 · Oct 18, 2013 · national
Continuity (1)
Related Publication 20160246714A1 · Aug 25, 2016