CPC G06F 16/244 (2019.01) [G06F 16/221 (2019.01); G06F 16/2237 (2019.01); G06F 16/2453 (2019.01); G06F 16/2455 (2019.01)] | 14 Claims |
1. A method of performing a query on a column-store table of encoded values, the method comprising:
receiving the query, the query comprising an indication of a plurality of column vectors having encoded values;
for each column vector of the plurality of column vectors, loading a subset of encoded values of the column vector into respective lanes of a respective register, thereby forming an array comprising the respective registers;
adding bits to encoded values in each of the respective registers, thereby generating unpacked encoded values of the plurality of column vectors, each unpacked encoded value having a predetermined length;
transposing the array such that unpacked encoded values previously loaded into a single respective register are now loaded in corresponding lanes of the respective registers; and
for each respective register, adding the unpacked encoded value in each lane of the respective register to a corresponding lane in a further register, thereby generating, in the corresponding lanes of the further register, sums of unpacked encoded values from corresponding lanes of each respective register.
|