Transferring and storing data in multicore and multiprocessor architectures
First Claim
Patent Images
1. A processor comprising:
- a plurality of cache memories,an array of interconnected tiles, each tile comprising a processor core, at least one of the tiles comprising a copy engine to perform a memory-to-memory copy operation based on a source begin address, a source end address, a transaction length, and a stride of transaction and each processor core being associated with one of the cache memories;
with the memory-to-memory copy operation copying first segments of data from a source region starting from the begin address, skipping over second segments of data in between the first segments of data, and stopping at the end address, and each of the first segments of data that is copied has a length equal to the transaction length, and each of the second segments of data that is not copied has a length equal to the stride of transaction, and with the source region having the data being copied comprises at least one of a region in a cache memory associated with the tile having the copy engine, a region in a cache memory associated with a tile different from the tile having the copy engine, a region in a cache memory shared by multiple tiles, and a region in a main memory.
9 Assignments
0 Petitions
Accused Products
Abstract
A processor includes a plurality of cache memories, and a plurality of processor cores, each associated with one of the cache memories. Each of at least some of the cache memories is associated with information indicating whether data stored in the cache memory is shared among multiple processor cores.
43 Citations
19 Claims
-
1. A processor comprising:
-
a plurality of cache memories, an array of interconnected tiles, each tile comprising a processor core, at least one of the tiles comprising a copy engine to perform a memory-to-memory copy operation based on a source begin address, a source end address, a transaction length, and a stride of transaction and each processor core being associated with one of the cache memories; with the memory-to-memory copy operation copying first segments of data from a source region starting from the begin address, skipping over second segments of data in between the first segments of data, and stopping at the end address, and each of the first segments of data that is copied has a length equal to the transaction length, and each of the second segments of data that is not copied has a length equal to the stride of transaction, and with the source region having the data being copied comprises at least one of a region in a cache memory associated with the tile having the copy engine, a region in a cache memory associated with a tile different from the tile having the copy engine, a region in a cache memory shared by multiple tiles, and a region in a main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
performing a memory-to-memory copy operation when a begin address, an end address, a transaction length, and a stride value are written into predetermined registers without requiring further instructions from a processor core, including copying first segments of data from a source region starting from the begin address and stopping at the end address, and skipping over second segments of data in between the first segments of data, with each of the first segments of data that is copied has a length equal to the transaction length, and each of the second segments of data that is not copied has a length equal to the stride value, and with the source region having the data being copied comprises at least one of a region in a cache memory associated with the tile having the copy engine, a region in a cache memory associated with a tile different from the tile having the copy engine, a region in a cache memory shared by multiple tiles, and a region in a main memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification