-
公开(公告)号:US10218739B2
公开(公告)日:2019-02-26
申请号:US15049519
申请日:2016-02-22
Applicant: Intel Corporation
Inventor: Vinodh Gopal , Christopher F. Clark , Gilbert M. Wolrich , Wajdi K. Feghali
Abstract: Methods and apparatus to perform string matching for network packet inspection are disclosed. In some embodiments there is a set of string matching slice circuits, each slice circuit of the set being configured to perform string matching steps in parallel with other slice circuits. Each slice circuit may include an input window storing some number of bytes of data from an input data steam. The input window of data may be padded if necessary, and then multiplied by a polynomial modulo an irreducible Galois-field polynomial to generate a hash index. A storage location of a memory corresponding to the hash index may be accessed to generate a slice-hit signal of a set of H slice-hit signals. The slice-hit signal may be provided to an AND-OR logic array where the set of H slice-hit signals is logically combined into a match result.
-
公开(公告)号:US10069512B2
公开(公告)日:2018-09-04
申请号:US15479087
申请日:2017-04-04
Applicant: Intel Corporation
Inventor: Vinodh Gopal , James D. Guilford , Kirk S. Yap , Sean M. Gulley , Gilbert M. Wolrich
Abstract: Detailed herein are embodiments of systems, methods, and apparatuses for decompression using hardware and software. For example, in embodiment a hardware apparatus comprises an input buffer to store incoming data from a compressed stream, a selector to select at least one byte stored in the input buffer, a decoder to decode the selected at least one byte and determine if the decoded at least one byte is a literal or a symbol, an overlap condition, a size of a record from the decoded stream, a length value of the data to be retrieved from the decoded stream, and an offset value for the decoded data, and a token format converter to convert the decoded data and data from source and destination offset base registers into a fixed-length token.
-
公开(公告)号:US10009172B2
公开(公告)日:2018-06-26
申请号:US15401877
申请日:2017-01-09
Applicant: INTEL CORPORATION
Inventor: Gilbert M. Wolrich , Kirk S. Yap , Vinodh Gopal , James D. Guilford
CPC classification number: H04L9/0643 , G06F9/30007 , G06F9/30036 , G06F9/30101 , G06F9/30145 , G06F9/3016 , G06F21/602 , G06F21/64 , G06F21/72
Abstract: A method of an aspect includes receiving an instruction. The instruction indicates a first source of a first packed data including state data elements ai, bi, ei, and fi for a current round (i) of a secure hash algorithm 2 (SHA2) hash algorithm. The instruction indicates a second source of a second packed data. The first packed data has a width in bits that is less than a combined width in bits of eight state data elements ai, bi, ci, di, ei, fi, gi, hi of the SHA2 hash algorithm. The method also includes storing a result in a destination indicated by the instruction in response to the instruction. The result includes updated state data elements ai+, bi+, ei+, and fi+ that have been updated from the corresponding state data elements ai, bi, ei, and fi by at least one round of the SHA2 hash algorithm.
-
公开(公告)号:US20180157489A1
公开(公告)日:2018-06-07
申请号:US15716258
申请日:2017-09-26
Applicant: Intel Corporation
Inventor: Kirk S. Yap , Gilbert M. Wolrich , James D. Guilford , Vinodh Gopal , Erdinc Ozturk , Sean M. Gulley , Wajdi K. Feghali , Martin G. Dixon
CPC classification number: G06F9/30145 , H04L9/0643 , H04L2209/122
Abstract: A processor includes a plurality of registers, an instruction decoder to receive an instruction to process a KECCAK state cube of data representing a KECCAK state of a KECCAK hash algorithm, to partition the KECCAK state cube into a plurality of subcubes, and to store the subcubes in the plurality of registers, respectively, and an execution unit coupled to the instruction decoder to perform the KECCAK hash algorithm on the plurality of subcubes respectively stored in the plurality of registers in a vector manner.
-
公开(公告)号:US09917689B2
公开(公告)日:2018-03-13
申请号:US15231595
申请日:2016-08-08
Applicant: Intel Corporation
Inventor: Sean M. Gulley , Vinodh Gopal , Wajdi K. Feghali , James D. Guilford , Gilbert M. Wolrich , Kirk S. Yap
CPC classification number: H04L9/0643 , G06F9/30007 , G06F21/72 , H04L9/3242 , H04L2209/12 , H04L2209/125 , H04L2209/20
Abstract: One embodiment provides an apparatus. The apparatus includes a single instruction multiple data (SIMD) hash module configured to apportion at least a first portion of a message of length L to a number (S) of segments, the message including a plurality of sequences of data elements, each sequence including S data elements, a respective data element in each sequence apportioned to a respective segment, each segment including a number N of blocks of data elements and to hash the S segments in parallel, resulting in S segment digests, the S hash digests based, at least in part, on an initial value and to store the S hash digests; a padding module configured to pad a remainder, the remainder corresponding to a second portion of the message, the second portion related to the length L of the message, the number of segments and a block size; and a non-SIMD hash module configured to hash the padded remainder, resulting in an additional hash digest and to store the additional hash digest.
-
公开(公告)号:US09916160B2
公开(公告)日:2018-03-13
申请号:US14562145
申请日:2014-12-05
Applicant: Intel Corporation
Inventor: Vinodh Gopal , James D. Guilford , Gilbert M. Wolrich , Wajdi K Feghali , Erdinc Ozturk , Martin G Dixon , Sean Mirkes , Bret L Toll , Maxim Loktyukhin , Mark C Davis , Alexandre J Farcy
IPC: G06F9/30
CPC classification number: G06F9/30032 , G06F9/30094 , G06F9/30098
Abstract: A method of one aspect may include receiving a rotate instruction. The rotate instruction may indicate a source operand and a rotate amount. A result may be stored in a destination operand indicated by the rotate instruction. The result may have the source operand rotated by the rotate amount. Execution of the rotate instruction may complete without reading a carry flag.
-
公开(公告)号:US09912481B2
公开(公告)日:2018-03-06
申请号:US14228056
申请日:2014-03-27
Applicant: INTEL CORPORATION
Inventor: Gilbert M. Wolrich , Vinodh Gopal , Kirk S. Yap , Wajdi K. Feghali
IPC: H04L9/32 , G06F12/08 , G06F12/0811 , H04L9/06
CPC classification number: H04L9/3239 , G06F9/30007 , G06F12/0811 , G06F2212/283 , H04L9/0643 , H04L2209/125
Abstract: An apparatus and method are described for executing hash functions on a processor. For example, one embodiment of a processor comprises: a register set including a first storage location and a second storage location in which state variables for a hash function are to be stored; an execution unit to execute the hash function and to initially designate the first storage location as storing a first set of state values used for computing rounds of the hash function, and to initially designate a second storage location as storing a second set of state values also used for computing the rounds of the hash function; and the execution unit to execute a plurality of rounds of the hash function using the first and second sets of state data, wherein executing includes swapping the designations of the first storage location and second storage location such that the first storage location is designated to store the first set of state values for a first set of rounds and the second set of state values for a second set of rounds, and wherein the second storage location is designated to store the second set of state values for the first set of rounds and the first set of state values for the second set of rounds.
-
公开(公告)号:US09900770B2
公开(公告)日:2018-02-20
申请号:US15238698
申请日:2016-08-16
Applicant: Intel Corporation
Inventor: Gilbert M. Wolrich , Vinodh Gopal , Erdinc Ozturk , Kirk S. Yap , Wajdi K. Feghali
IPC: G06F15/00 , G06F7/00 , H04W12/02 , G09C1/00 , H04L9/06 , G06F9/30 , G06F9/38 , H04W12/04 , H04L29/06
CPC classification number: H04W12/02 , G06F9/30007 , G06F9/30036 , G06F9/30134 , G06F9/3887 , G09C1/00 , H04L9/065 , H04L9/0668 , H04L63/045 , H04L63/0457 , H04W12/04
Abstract: Vector instructions for performing SNOW 3G wireless security operations are received and executed by the execution circuitry of a processor. The execution circuitry receives a first operand of the first instruction specifying a first vector register that stores a current state of a finite state machine (FSM). The execution circuitry also receives a second operand of the first instruction specifying a second vector register that stores data elements of a liner feedback shift register (LFSR) that are needed for updating the FSM. The execution circuitry executes the first instruction to produce a updated state of the FSM and an output of the FSM in a destination operand of the first instruction.
-
公开(公告)号:US09898300B2
公开(公告)日:2018-02-20
申请号:US15346410
申请日:2016-11-08
Applicant: Intel Corporation
Inventor: Gilbert M. Wolrich , Vinodh Gopal , Kirk S. Yap , Wajdi K. Feghali
CPC classification number: G06F9/3867 , G06F9/30007 , G06F9/30036 , G06F9/3005 , G06F9/30098 , G06F15/8007 , G09C1/00 , H04L9/0662 , H04L2209/125
Abstract: Vector instructions for performing ZUC stream cipher operations are received and executed by the execution circuitry of a processor. The execution circuitry receives a first vector instruction to perform an update to a liner feedback shift register (LFSR), and receives a second vector instruction to perform an update to a state of a finite state machine (FSM), where the FSM receives inputs from re-ordered bits of the LFSR. The execution circuitry executes the first vector instruction and the second vector instruction in a single-instruction multiple data (SIMD) pipeline.
-
公开(公告)号:US20180011656A1
公开(公告)日:2018-01-11
申请号:US15663328
申请日:2017-07-28
Applicant: Intel Corporation
Inventor: James D. Guilford , Vinodh Gopal , Gilbert M. Wolrich , Daniel F. Cutter
CPC classification number: G06F3/0638 , G06F3/0604 , G06F3/0608 , G06F3/0653 , G06F3/0673 , G06F8/52 , G06F12/1018 , G06F12/1027 , G06F2212/401 , G06F2212/68 , H03M7/3086 , H03M7/40
Abstract: A processing system is provided that includes a memory for storing an input bit stream and a processing logic, operatively coupled to the memory, to generate a first score based on: a first set of matching data related to a match between a first bit subsequence and a candidate bit subsequence within the input bit stream, and a first distance of the candidate bit subsequence from the first set of matching data. A second score is generated based on a second set of matching data related to a match between a second bit subsequence and the candidate bit subsequence, and a second distance of the candidate bit subsequence from the second set of matching data. A code to replace the first or second bit subsequence in an output bit stream is identified. Selection of the one of the bit subsequences to replace is based on a comparison of the scores.
-
-
-
-
-
-
-
-
-