发明名称 Data compaction using vectorized instructions
摘要 Techniques for performing database operations using vectorized instructions are provided. In one technique, data compaction is performed using vectorized instructions to identify a shuffle mask based on matching bits and update an output array based on the shuffle mask and an input array. In a related technique, a hash table probe involves using vectorized instructions to determine whether each key in one or more hash buckets matches a particular input key.
申请公布号 US9626402(B2) 申请公布日期 2017.04.18
申请号 US201313956356 申请日期 2013.08.01
申请人 Oracle International Corporation 发明人 Sen Rajkumar;Idicula Sam;Agarwal Nipun
分类号 G06F17/30;G06F9/30 主分类号 G06F17/30
代理机构 Hickman Palermo Becker Bingham LLP 代理人 Hickman Palermo Becker Bingham LLP ;Ledesma Daniel D.
主权项 1. One or more storage media storing instructions which, when executed by one or more processors, cause: storing, in a first register, a first plurality of matching indicators, each of which indicates whether a corresponding input data element in a first plurality of input data elements is a wanted element or an unwanted element, wherein wanted elements are to be stored in a set of output data elements and unwanted elements are not to be stored in the set of output data elements; executing a first vectorized instruction against the first plurality of matching indicators in the first register to generate a first result; based on the first result, identifying a first shuffle mask from among a plurality of shuffle masks; storing the first shuffle mask in a second register; storing the first plurality of input data elements in a third register that is different than the second register; executing a second vectorized instruction against the first plurality of input data elements in the third register and the first shuffle mask in the second register to generate a second result; storing one or more first output data elements based on the second result; storing, in a fourth register, a second plurality of matching indicators, each of which indicates whether a corresponding input data element in a second plurality of input data elements is a wanted element or an unwanted element; executing the first vectorized instruction against the second plurality of matching indicators in the fourth register to generate a third result; based on the third result, identifying a second shuffle mask from among the plurality of shuffle masks, wherein the second shuffle mask is different than the first shuffle mask; storing the second shuffle mask in a fifth register; storing the second plurality of input data elements in a sixth register that is different than the fifth register; executing the second vectorized instruction against the second plurality of input data elements in the sixth register and the second shuffle mask in the fifth register to generate a fourth result; storing one or more second output data elements based on the fourth result.
地址 Redwood Shores CA US