Multicast copy ring for database direct memory access filtering engine
First Claim
1. A method, comprising:
- in response to a particular memory location being pushed into a first register within a first register space that is accessible by a first set of electronic circuits;
said first set of electronic circuits accessing a descriptor stored at the particular memory location, wherein the descriptor indicates;
a width of a column of tabular data, a number of rows of said tabular data;
a source memory address specifying a memory address for said tabular data in a source memory unit of a plurality of memory units;
a destination memory address specifying a relative address within each memory unit of said plurality of memory units;
a write map specifying which of said plurality of memory units to write said tabular data;
the first set of electronic circuits determining, based on the descriptor, control information, said control information including said write map;
the first set of electronic circuits transmitting, using a hardware data channel, the control information to a second set of electronic circuits;
according to the control information, said second set of electronic circuits copying said tabular data from said source memory unit to each memory unit of said plurality of memory units specified by said write map.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques provide for hardware accelerated data movement between main memory and an on-chip data movement system that comprises multiple core processors that operate on the tabular data. The tabular data is moved to or from the scratch pad memories of the core processors. While the data is in-flight, the data may be manipulated by data manipulation operations. The data movement system includes multiple data movement engines, each dedicated to moving and transforming tabular data from main memory data to a subset of the core processors. Each data movement engine is coupled to an internal memory that stores data (e.g. a bit vector) that dictates how data manipulation operations are performed on tabular data moved from a main memory to the memories of a core processor, or to and from other memories. The internal memory of each data movement engine is private to the data movement engine. Tabular data is efficiently copied between internal memories of the data movement system via a copy ring that is coupled to the internal memories of the data movement system and/or is coupled to a data movement engine. Also, a data movement engine internally broadcasts data to other data movement engines, which then transfer the data to respective core processors. Partitioning may also be performed by the hardware of the data movement system. Techniques are used to partition data “in flight”. The data movement system also generates a column of row identifiers (RIDs). A row identifier is a number treated as identifying a row or element'"'"'s position within a column. Row identifiers each identifying a row in column are also generated.
-
Citations
21 Claims
-
1. A method, comprising:
in response to a particular memory location being pushed into a first register within a first register space that is accessible by a first set of electronic circuits; said first set of electronic circuits accessing a descriptor stored at the particular memory location, wherein the descriptor indicates; a width of a column of tabular data, a number of rows of said tabular data; a source memory address specifying a memory address for said tabular data in a source memory unit of a plurality of memory units; a destination memory address specifying a relative address within each memory unit of said plurality of memory units; a write map specifying which of said plurality of memory units to write said tabular data; the first set of electronic circuits determining, based on the descriptor, control information, said control information including said write map; the first set of electronic circuits transmitting, using a hardware data channel, the control information to a second set of electronic circuits; according to the control information, said second set of electronic circuits copying said tabular data from said source memory unit to each memory unit of said plurality of memory units specified by said write map. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A method, comprising:
-
a first core processor of a plurality of core processors that are on a single chip pushing a particular memory address into a first register; wherein each core processor of said plurality of core processors is coupled to a scratch pad memory of a plurality of scratch pad memories that are on said single chip; wherein for each subset of said plurality of core processors, a respective data movement engine of a plurality of data movement engines on said single chip is configured to move data from a main memory connected to said single chip to the respective scratch pads of said each subset of said plurality of core processors; wherein a copy ring on said single chip comprises copy memory interface nodes, each being coupled to respective one or more database movement engines of said plurality of data movement engines, and wherein a descriptor stored at the memory address in the respective scratch pad of the first core processor indicates; a width of a column of tabular data, a number of rows of said tabular data; a source memory address specifying a memory address for said tabular data in a source memory; a destination memory address specifying a relative address within each scratch pad memory of said plurality of scratch pad memories; and a write map specifying which of said plurality of scratch pad memories to write said tabular data; in response to said first core processor pushing said particular memory address into a first register; a first data movement engine moving said tabular data from said source memory to the destination memory address of the respective scratch pad memory of said first core processor; transmitting control information to said copy ring, said control information including said write map and said destination memory address; a particular copy memory interface node of said copy memory interface nodes receiving said control information, said particular copy memory interface node being coupled to a particular data movement engine of said data movement engines; said particular copy memory interface node writing said tabular data to circuitry of the particular data movement engine; said particular data movement engine causing said tabular data stored in said respective memory to be written to each scratch pad memory of the respective subset of core processors that is identified by the write map. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A single chip, comprising:
-
a first register within a first register space; a first set of electronic circuits, said first register space being accessible to said first set of electronic circuits; a second set of electronic circuits connected to said first set of electronic circuits via a hardware data channel; responsive to a particular memory location being pushed into said first register; said first set of electronic circuits being configure to; access a descriptor stored at the particular memory location, wherein the descriptor indicates; a width of a column of tabular data, a number of rows of said tabular data, a source memory address specifying a memory address for said tabular data in a source memory unit of a plurality of memory units, a destination memory address specifying a relative address within each memory unit of said plurality of memory units, and a write map specifying which of said plurality of memory units to write said tabular data; determine, based on the descriptor, control information, said control information including said write map; and transmit via the hardware data channel, the control information to said second set of electronic circuits; and said second set of electronic circuits being configured to, according to the control information, copy said tabular data from said source memory unit to each memory unit of said plurality of memory units specified by said write map. - View Dependent Claims (20)
-
-
21. A single chip, comprising:
-
a first core processor of a plurality of core processors; wherein each core processor of said plurality of core processors is coupled to a respective scratch pad memory of a plurality of scratch pad memories; for each subset of said plurality of core processors, a respective data movement engine of a plurality of data movement engines that is configured to move data from a main memory connected to said single chip to the respective scratch pad memory of said each subset of said plurality of core processors, said plurality of data movement engines including a first data movement engine; a copy ring that comprises copy memory interface nodes, each being coupled to respective one or more database movement engines of said plurality of data movement engines; and responsive to a particular memory location in the respective scratch pad memory of the first core processor being pushed into a first register; said single chip being configured to; access a descriptor stored at the particular memory location, wherein the descriptor indicates; a width of a column of tabular data, a number of rows of said tabular data, a source memory address specifying a memory address for said tabular data in a source memory, a destination memory address specifying a relative address within each scratch pad memory of said plurality of scratch pad memories, and a write map specifying which of said plurality of scratch pad memories to write said tabular data; to cause said first data movement engine to move said tabular data from said source memory to the destination memory address of the respective scratch pad memory of said first core processor; to transmit control information to said copy ring, said control information including said write map and said destination memory address; to cause a particular copy memory interface node of said copy memory interface nodes to receive said control information, said particular copy memory interface node being coupled to a particular data movement engine of said data movement engines; and to cause said particular copy memory interface node to write said tabular data to circuitry of said particular data movement engine and said particular data movement engine to cause said tabular data stored in said respective memory to be written to each scratch pad memory of a subset of core processors that is identified by the write map.
-
Specification