IP Library Granted Patent US 8,661,200
Granted Patent B2
US 8,661,200 · App. 12/701,171 · Granted Feb 25, 2014

Channel controller for multi-channel cache

Inventors: Jari Nikara (Lempaala, FI); Eero Aho (Tampere, FI); Kimmo Kuusilinna (Berkeley, CA)
Assignee: Nokia Corporation
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,661,200
App. No.
12/701,171
Granted
Feb 25, 2014
Kind
B2
Abstract

Disclosed herein is a channel controller for a multi-channel cache memory, and a method that includes receiving a memory address associated with a memory access request to a main memory of a data processing system; translating the memory address to form a first access portion identifying at least one partition of a multi-channel cache memory, and at least one further access portion, where the at least one partition includes at least one channel; and applying the at least one further access portion to the at least one channel of the multi-channel cache memory.

Claims (44)

1. A method, comprising:

receiving a memory address associated with a memory access request to a main memory of a data processing system;

translating the memory address to form a first access portion identifying at least one partition of a multi-channel cache memory, and at least one further access portion, where the at least one partition is comprised of at least one cache channel, where the multi-channel cache memory is comprised of at least two cache channels, where a first cache channel is comprised of a first cache channel storage associated with a first unique portion of an address space of the main memory, and where a second cache channel is comprised of a second cache channel storage associated with a second unique portion of the address space of the main memory, where said first cache storage and said second cache storage are isolated one from the other such that the first cache channel storage serves only the first unique portion of the address space of the main memory and the second cache channel storage serves only the second unique portion of the address space of the main memo and no portion of the address space of the main memory is served by both the first cache storage and the second cache storage; and

applying the at leas one further access portion to the at least one cache channel of the multi-channel cache memory.

2. The method as in claim 1 , where translating forms the at least one further access portion to comprise at least a second access portion comprised of a multi-channel cache tag value, and a third access portion comprised of a multi-channel cache index value.

3. The method of claim 2 , where translating comprises using A bits of the memory address to form the first access portion, B bits of the memory address to form the second access portion and C bits of the memory address to form the third access portion.

4. The method of claim 2 , where translating comprises using A most significant bits of memory address to form the first access portion, B next most significant bits of the memory address to form the second access portion and C next most significant bits of the memory address to form the third access portion.

5. The method of claim 2 , where translating comprises using A most significant bits of memory address to form the first access portion and some of the second access portion, B next most significant bits of the memory address to form the remainder of the second access portion and C next most significant bits of the memory address to form the third access portion.

6. The method of claim 2 , where translating comprises applying at least some of the memory address to a look-up table that outputs in response at least the first, second and third access portions.

7. The method of claim 1 , where each cache channel of the multi-channel cache memory space maps to a region of the main memory space that is the same size.

8. The method of claim 1 , where at least one cache channel of the multi-channel cache memory space maps to a region of the main memory space that is of a different size than the size of a region of main memory space mapped to another cache channel.

9. The method of claim 1 , where the cache channels of the multi-channel cache memory are mapped to the main memory in such a manner that data stored in consecutive main memory address locations are accessed in parallel in the multi-channel cache memory.

10. The method of claim 1 , where the cache channels of the multi-channel cache memory are mapped to the main memory in such a manner that at least a portion of the multi-channel cache memory can be placed in a low power mode of operation.

11. The method as in claim 1 , further comprising establishing at system boot time how the translating forms the access portions in response to receiving a memory address.

12. The method as in claim 1 , further comprising changing during operation of the system how the translating forms the access portions in response to receiving a memory address.

13. The method of claim 1 , where the multi-channel cache memory comprises a plurality of parallel input ports, each of which corresponds to one of the cache channels, and configured to receive, in parallel, memory access requests, each parallel input port is configured to receive a memory access request for any one of a plurality of processing units, and where the multi-channel cache memory further comprises a plurality of cache blocks wherein each cache block is configured to receive memory access requests from a unique one of the plurality of input ports such that there is a one-to-one mapping between the plurality of parallel input ports and the plurality of cache blocks, where each of the plurality of cache blocks is configured to serve a unique portion of an address space of the memory.

14. A tangible memory medium that stores computer software instructions the execution of which results in performing the method of claim 1 .

15. A method, comprising:

receiving a memo address associated with a memory access request to a main memo of a data processing system;

translating the memory address to form a first access portion identifying at least one partition of a multi-channel cache memory, and at least one further access portion, where the at least one partition is comprised of at least one cache channel, where the multi-channel cache memory is comprised of at least two cache channels, where a first cache channel is comprised of a first cache channel storage associated with a first unique portion of an address space of the main memory, and where a second cache channel is comprised of a second cache channel storage associated with a second unique portion of the address space of the main memory; and

applying the at least one further access portion to the at least one cache channel of the multi-channel cache memory;

where the at least one partition is comprised of one of a cache channel, or a cache channel cluster, or a cluster of cache channel clusters, where two different cache channel clusters can each comprise a same cache channel identifier, and where two different clusters of cache channel clusters can each comprise the same cache channel cluster identifier.

16. An apparatus, comprising:

a receiver configured to receive a memory address associated with a memory access request to a main memory;

a translator configured to translate the received memory address to form a first access portion identifying at least one partition of a multi-channel cache memory and at least one further access portion, where the at least one partition is comprised of at least one cache channel, where the multi-channel cache memory is comprised of at least two cache channels, where a first cache channel is comprised of a first cache channel storage associated with a first unique portion of an address space of the main memory, and where a second cache channel is comprised of a second cache channel storage associated with a second unique portion of the address space of the main memory, where said first cache storage and said second cache storage are isolated one from the other such that the first cache channel storage serves only the first unique portion of the address space of the main memory and the second cache channel storage serves only the second unique portion of the address space of the main memory, and no portion of the address space of the main memory is served by both the first cache storage and the second cache storage; and

an output configured to apply the at least one further access portion to the identified at least one cache channel of the multi-channel cache memory.

17. The apparatus as in claim 16 , where said translator forms the at least one further access portion to comprise at least a second access portion comprised of a multi-channel cache tag value, and a third access portion comprised of a multi-channel cache index value.

18. The apparatus of claim 17 , where said translator uses A bits of the memory address to form the first access portion, B bits of the memory address to form the second access portion and C bits of the memory address to form the third access portion.

19. The apparatus of claim 17 , where said translator uses A most significant bits of memory address to form the first access portion, B next most significant bits of the memory address to form the second access portion and C next most significant bits of the memory address to form the third access portion.

20. The apparatus of claim 17 , where said translator uses A most significant bits of memory address to form the first access portion and some of the second access portion, B next most significant bits of the memory address to form the remainder of the second access portion and C next most significant bits of the memory address to form the third access portion.

21. The apparatus as in claim 17 , where said translator applies at least some of the memory address to a look-up table that outputs in response at least the first, second and third access portions.

22. The apparatus of claim 16 , where each cache channel of the multi-channel cache memory space maps to a region of the main memory space that is the same size.

23. The apparatus of claim 16 , where at least one cache channel of the multi-channel cache memory space maps to a region of the main memory space that is of a different size than the size of a region of main memory space mapped to another cache channel.

24. The apparatus of claim 16 , where the cache channels of the multi-channel cache memory are mapped to the main memory in such a manner that data stored in consecutive main memory address locations are accessed in parallel in the multi-channel cache memory.

25. The apparatus of claim 16 , where the cache channels of the multi-channel cache memory are mapped to the main memory in such a manner that at least a portion of the multi-channel cache memory can be placed in a low power mode of operation.

26. The apparatus as in claim 16 , where said translator is configured to establish at boot time how said translator forms the access portions in response to a received memory address.

27. The apparatus as in claim 16 , where said translator is configured to change during operation of said translator how said translator forms the access portions in response to a received memory address.

28. The apparatus of claim 16 , where the multi-channel cache memory comprises a plurality of parallel input ports, each of which corresponds to one of the cache channels, and configured to receive, in parallel, memory access requests, each parallel input port is configured to receive a memory access request for any one of a plurality of processing units, and where the multi-channel cache memory further comprises a plurality of cache blocks wherein each cache block is configured to receive memory access requests from a unique one of the plurality of input ports such that there is a one-to-one mapping between the plurality of parallel input ports and the plurality of cache blocks, where each of the plurality of cache blocks is configured to serve a unique portion of an address space of the memory.

29. The apparatus as in claim 16 , embodied at least partially within an integrated circuit.

30. An apparatus, comprising:

a receiver configured to receive a memory address associated with a memory access request to a main memory;

a translator configured to translate the received memory address to form a first access portion identifying at east one partition of multi-channel cache memory and at least on her access portion, where the at least one partition is comprised of at least one cache channel where the multi-channel cache memory is comprised of at least two cache channels here a first cache channel comprised of a first cache channel storage associated with a first unique portion of an address space of the main memory, and where a second cache channel is comprised of a second cache channel storage associated with a second unique portion of the address space of the main memory; and

an output configured to apply the at least one further access portion to the identified a east one cache channel of the multi-channel cache memory;

where the at least one partition is comprised of one of a cache channel, or a cache channel cluster, or a cluster of cache channel clusters, where two different cache channel clusters can each comprise a same cache channel identifier, and where two different clusters of cache channel clusters can each comprise the same cache channel cluster identifier.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035501/0269 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2010
From: NIKARA, JARI; AHO, EERO; KUUSILINNA, KIMMO
To: NOKIA CORPORATION
Reel/Frame 024171/0294 →
Continuity (1)
Related Publication 20110197028A1 · Aug 11, 2011