IP Library Granted Patent US 8,078,804
Granted Patent B2
US 8,078,804 · App. 11/768,462 · Granted Dec 13, 2011

Method and arrangement for cache memory management, related processor architecture

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,078,804
App. No.
11/768,462
Granted
Dec 13, 2011
Kind
B2
Abstract

A data cache memory coupled to a processor including processor clusters are adapted to operate simultaneously on scalar and vectorial data by providing data locations in the data cache memory for storing data for processing. The data locations are accessed either in a scalar mode or in a vectorial mode. This is done by explicitly mapping the data locations that are scalar and the data locations that are vectorial.

Claims (36)

1. A method for managing a data cache memory associated with a processor comprising a plurality of processor clusters that operate simultaneously on scalar and vectorial data, the plurality of processor clusters comprising a low cluster and a high cluster coupled to the data cache memory via an intercluster data path, with the low cluster being selectably activated to only operate on the scalar data and with both the low and high clusters being selectably activated to operate on the vectorial data, the method comprising:

providing in the data cache memory data locations for storing therein data for processing by the plurality of processor clusters; and

accessing the data locations in the data cache memory via the intercluster data path either in a scalar mode or in a vectorial mode, each processor cluster comprising a plurality of processing elements, with the plurality of processing elements in each processor cluster being symmetrical with the plurality of processing elements in other processor clusters so that activating the low cluster only supports the scalar mode and activating both the the low cluster along with the high cluster supports the vectorial mode, with the accessing based on the following

if accessing the data locations is in the scalar mode, then an address to be accessed is computed by the processor cluster that needs the data, and

if accessing the data locations is in the vectorial mode, then the address to be accessed is computed by one of the processor clusters and is identical for all of them.

2. The method of claim 1 , further comprising explicitly mapping the data locations of the cache memory that are scalar and the data locations of the cache memory that are vectorial.

3. The method of claim 1 , wherein transferring data into the cache memory comprises:

if transfer is in the scalar mode, then the data is considered as a set of K words of dimension w; and

if transfer is in the vectorial mode, then the data is considered as a set of K/L words of dimension L*w, whereby each data location in the cache memory is subdivided into L locations of dimension K/L.

4. The method of claim 1 , further comprising reading data for processing by accessing the data locations in the cache memory, wherein:

if access is in the scalar mode, then the data item accessed is made available simultaneously to all of the processor clusters; and

if access is in the vectorial mode, and an n number of processor clusters are active, then the data item accessed has a dimension equal to n times the dimension of a scalar data item, and the data is distributed as n respective data items to the n processor clusters that are active.

5. A processor comprising:

a data cache memory for storing data for processing, with data locations therein being accessible either in a scalar mode or in a vectorial mode;

an intercluster data path coupled to said data cache memory; and

a plurality of processor clusters comprising a low cluster and a high cluster coupled to said intercluster data path and being selectably activated to operate on scalar and vectorial data, and for accessing the data locations via the intercluster data path either in the scalar mode or in the vectorial mode, each processor cluster comprising a plurality of processing elements, with the plurality of processing elements in each processor cluster being symmetrical with the plurality of processing elements in other processor clusters so that activating the low cluster only supports the scalar mode and activating both the low cluster along with the high cluster supports the vectorial mode, with the accessing based on the following

if accessing the data locations is in the scalar mode, then an address to be accessed is computed based on its own data by the processor cluster that needs the data, and

if accessing the data locations is in the vectorial mode, then the address to be accessed is computed only by one of the processor clusters and is identical for all of them.

6. The processor of claim 5 , further comprising at least one control register for explicitly mapping the data locations in said data cache memory that are scalar and the data locations that are vectorial.

7. The processor of claim 5 , wherein said plurality of processor clusters is configured so that transferring data into said cache memory comprises:

if transfer is in the scalar mode, then the data is considered as a set of K words of dimension w; and

if transfer is in the vectorial mode, then the data is considered as a set of K/L words of dimension L*w, whereby each location in the cache memory is subdivided into L locations of dimension K/L.

8. The processor of claim 5 , wherein said plurality of processor clusters is configured so that reading data for processing by accessing the data locations in the cache memory is based on the following:

if access is in the scalar mode, then the data item accessed is made available simultaneously to all of said processor clusters; and

if access is in the vectorial mode, and an n number of processor clusters are active, then the data item accessed has a dimension equal to n times the dimension of a scalar data item, and the data is distributed as n respective data items to the n processor clusters that are active.

9. A data cache memory associated with a processor comprising a plurality of processor clusters comprising a low cluster and a high cluster and being selectably activated to operate on scalar and vectorial data, the plurality of processor clusters being coupled to the data cache memory via an intercluster data path, the data cache memory comprising:

data locations for storing data for processing by the plurality of processor clusters, with the data locations being accessible via the intercluster data path either in a scalar mode or in a vectorial mode, each processor cluster comprising a plurality of processing elements, with the plurality of processing elements in each processor cluster being symmetrical with the plurality of processing elements in other processor clusters so that activating the low cluster only supports the scalar mode and activating both the low cluster along with the high cluster supports the vectorial mode, with the accessing based on the following

if accessing the data locations is in the scalar mode, then an address to be accessed is computed based on its own data by the processor cluster that needs the data, and

if accessing the data locations is in the vectorial mode, then the address to be accessed is computed only by one of the processor clusters and is identical for all of them.

10. The data cache memory of claim 9 , further comprising at least one control register for explicitly mapping the data locations that are scalar and the data locations that are vectorial.

11. The data cache memory of claim 9 , wherein the plurality of processor clusters is configured so that transferring data into the data locations comprises:

if transfer is in the scalar mode, then the data is considered as a set of K words of dimension w; and

if transfer is in the vectorial mode, then the data is considered as a set of K/L words of dimension L*w, whereby each location in the cache memory is subdivided into L locations of dimension K/L.

12. The data cache memory of claim 9 , wherein the plurality of processor clusters is configured so that reading data for processing by accessing the data locations is based on the following:

if access is in the scalar mode, then the data item accessed is made available simultaneously to all of the processor clusters; and

if access is in the vectorial mode, and an n number of processor clusters are active, then the data item accessed has a dimension equal to n times the dimension of a scalar data item, and the data is distributed as n respective data items to the n processor clusters that are active.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: STMICROELECTRONICS N.V.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 062201/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2007
From: PAPPALARDO, FRANCESCO; NOTARANGELO, GIUSEPPE; SALURSO, ELENA; GUIDETTI, ELIO
To: STMICROELECTRONICS S.R.L.; STMICROELECTRONICS N.V.
Reel/Frame 019480/0725 →