Patents by Inventor Houdhaifa BOUZGUARROU
Houdhaifa BOUZGUARROU has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20200285476Abstract: An apparatus and method are provided for handling prediction information. The apparatus has processing circuitry for performing data processing operations in response to instructions, the processing circuitry comprising transactional memory support circuitry to support execution of a transaction comprising a sequence of instructions. Prediction circuitry is used to generate predictions in relation to instruction flow changing instructions, and prediction storage is provided to store a plurality of items of prediction information that are referenced by the prediction circuitry when generating the predictions. The items of prediction information maintained by the prediction storage change based on the instructions being executed by the processing circuitry. A recovery storage is activated by the transactional memory support circuitry at a transaction start point to store a restore pointer identifying a chosen location in the prediction storage.Type: ApplicationFiled: March 5, 2019Publication date: September 10, 2020Inventors: Guillaume BOLBENES, Albin Pierrick TONNERRE, Houdhaifa BOUZGUARROU
-
Patent number: 10691461Abstract: Data processing circuitry comprises fetch circuitry to fetch blocks, containing instructions for execution, defined by a fetch queue; and prediction circuitry to predict one or more next blocks to be fetched and to add the predicted next blocks to the fetch queue; the prediction circuitry comprising: branch prediction circuitry to detect a predicted branch destination for a branch instruction in a current block, the predicted branch destination representing either a branch target for a branch predicted to be taken or a next instruction after the branch instruction, for a branch predicted not to be taken; and sequence prediction circuitry to detect sequence data, associated with the predicted branch destination, identifying a next block following the predicted branch destination in the program flow order having a next instance of a branch instruction, to add to the fetch queue the identified next block and any intervening blocks between the current block and the identified next block, and to initiate branch prType: GrantFiled: December 22, 2017Date of Patent: June 23, 2020Assignee: ARM LimitedInventors: Houdhaifa Bouzguarrou, Guillaume Bolbenes, Vincenzo Consales, Eddy Lapeyre
-
Patent number: 10649782Abstract: An apparatus and method are provided for controlling branch prediction. The apparatus has processing circuitry for executing instructions, and branch prediction circuitry that comprises a plurality of branch prediction mechanisms used to predict target addresses for branch instructions to be executed by the processing circuitry. The branch instructions comprise a plurality of branch types, where one branch type is a return instruction. The branch prediction mechanisms include a return prediction mechanism used by default to predict a target address when a return instruction is detected by the branch prediction circuitry. However, the branch prediction circuitry is responsive to a trigger condition indicative of misprediction of the target address when using the return prediction mechanism to predict the target address for a given return instruction, to switch to using an alternative branch prediction mechanism for predicting the target address for the given return instruction.Type: GrantFiled: March 29, 2018Date of Patent: May 12, 2020Assignee: Arm LimitedInventors: Luca Nassi, Houdhaifa Bouzguarrou, Guillaume Bolbenes
-
Publication number: 20200133851Abstract: Circuitry comprises memory circuitry providing a plurality of memory locations; location selection circuitry to select a set of one or more of the memory locations by which to access a data item according to a mapping relationship between an attribute of the data item and the set of one or more memory locations; the location selection circuitry being configured to initiate an allocation operation for a data item when that data item is to be newly stored by the memory circuitry and the selected set of one or more of the memory locations are already occupied by one or more other data items, the allocation operation comprising an operation to replace at least a subset of the one or more other data items from the set of one or more memory locations by the newly stored data item; and detector circuitry to detect a data access conflict in which a group of two or more data items having different respective attributes are mapped by the mapping relationship to the same set of one or more memory locations; the locatType: ApplicationFiled: October 16, 2019Publication date: April 30, 2020Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Eddy LAPEYRE, Luc ORION
-
Publication number: 20200133674Abstract: Circuitry comprises a prediction register storing a plurality of entries each having respective data values for association with one or more branch instructions; prediction circuitry to detect, using prediction data derived by a mapping function from the stored data values associated with a given branch instruction, whether or not a branch represented by the given branch instruction is predicted to be taken; update circuitry to modify the stored data values associated with the given branch instruction in dependence upon a resolution of whether the branch represented by the given branch instruction is taken or not; and control circuitry configured to selectively alter one or more of the data values other than data values associated with the given branch instruction.Type: ApplicationFiled: October 18, 2019Publication date: April 30, 2020Inventors: Houdhaifa BOUZGUARROU, Vincenzo CONSALES
-
Publication number: 20200133673Abstract: Circuitry comprises a prediction register having one or more entries each storing prediction data; prediction circuitry configured to map a value of the stored prediction data to a prediction of whether or not a branch represented by a given branch instruction is predicted to be taken, according to a data mapping; and control circuitry configured to selectively vary the data mapping between the prediction and the value of the stored prediction data.Type: ApplicationFiled: October 16, 2019Publication date: April 30, 2020Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Vincenzo CONSALES
-
Patent number: 10620960Abstract: An apparatus and method are provided for performing branch prediction. The apparatus has processing circuitry for executing instructions out-of-order with respect to original program order, and event counting prediction circuitry for maintaining event count values for branch instructions, for use in making branch outcome predictions for those branch instructions. Further, checkpointing storage stores state information of the apparatus at a plurality of checkpoints to enable the state information to be restored for a determined one of those checkpoints in response to a flush event. The event counting prediction circuitry has training storage with a first number of training entries, each training entry being associated with a branch instruction.Type: GrantFiled: August 20, 2018Date of Patent: April 14, 2020Assignee: Arm LimitedInventors: Houdhaifa Bouzguarrou, Guillaume Bolbenes, Vincenzo Consales
-
Publication number: 20200110610Abstract: An apparatus and method are provided for decoding instructions. The apparatus has fetch circuitry for fetching instructions from memory, where each instruction is from a fetch granule comprising P instructions at sequential addresses in the memory. Decode circuitry is then used to decode fetched instructions in order to produce a stream of decoded instructions for execution by the execution circuitry, and a decoded instruction cache is provided to store decoded instructions produced by the decode circuitry. The decoded instruction cache comprises a plurality of cache lines, where each cache line is arranged to store decoded instructions from at least one fetch granule allocated to that cache block, for each fetch granule allocated to the cache block the cache block being able to store up to P decoded instructions from that fetch granule.Type: ApplicationFiled: September 19, 2019Publication date: April 9, 2020Inventors: Eddy LAPEYRE, Guillaume BOLBENES, Houdhaifa BOUZGUARROU, Luc ORION
-
Publication number: 20200082280Abstract: An apparatus comprises: a prediction storage structure comprising a plurality of prediction state entries representing instances of predicted instruction behaviour; prediction training circuitry to perform a training operation to train the prediction state entries based on actual instruction behaviour; prediction circuitry to output at least one control signal for triggering a speculative operation based on the predicted instruction behaviour represented by a prediction state entry for which the training operation has provided sufficient confidence in the predicted instruction behaviour; an allocation filter comprising at least one allocation filter entry representing a failed predicted instruction behaviour for which the training operation failed to provide said sufficient confidence; and prediction allocation circuitry to prevent allocation of a new entry in the prediction storage structure for a failed predicted instruction behaviour represented by an allocation filter entry of the allocation filter.Type: ApplicationFiled: August 15, 2019Publication date: March 12, 2020Inventors: Luc ORION, Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Eddy LAPEYRE
-
Publication number: 20200081717Abstract: Branch prediction circuitry comprises: a return address prediction structure to store at least one predicted return address; and a branch target buffer (BTB) structure comprising entries each for specifying predicted branch information for a corresponding block of instructions. Within at least a subset of entries of the BTB structure, each entry specifies the predicted branch information with an encoding incapable of simultaneously indicating both: that the corresponding block of instructions is predicted to include a return branch instruction (for which the return address prediction structure is used to predict the target address); and the predicted target address for the return branch instruction. This can provide a more efficient BTB structure which requires less circuit area and power for a given level of branch prediction performance.Type: ApplicationFiled: August 15, 2019Publication date: March 12, 2020Inventors: Luc ORION, Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Eddy LAPEYRE
-
Publication number: 20200065105Abstract: An apparatus and method are provided for detecting regularity in a number of occurrences of an event observed during multiple instances of a counting period. The apparatus has regularity detection circuitry for seeking to detect such a regularity, and a storage providing a storage entry having a count value field to store a count value and a confidence indication field to indicate a confidence in the regularity. The regularity detection circuitry is arranged to consider the multiple instances of the counting period in pairs, for one instance in the pair the regularity detection circuitry incrementing the count value following each occurrence of the event, and for the other instance in the pair the regularity detection circuitry decrementing the count value following each occurrence of the event.Type: ApplicationFiled: August 22, 2018Publication date: February 27, 2020Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Eddy LAPEYRE, Luc ORION
-
Publication number: 20200065111Abstract: An apparatus and method are provided for performing branch prediction. The apparatus has processing circuitry for executing instructions, and branch prediction circuitry for making branch outcome predictions in respect of branch instructions. The branch prediction circuitry includes loop prediction circuitry having a plurality of entries, where each entry is used to maintain branch outcome prediction information for a loop controlling branch instruction that controls repeated execution of a loop comprising a number of instructions. The branch prediction circuitry is arranged to analyse blocks of instructions and to produce a prediction result for each block that is dependent on branch outcome predictions made for any branch instructions appearing in the associated block. A prediction queue then stores the prediction results produced by the branch prediction circuitry in order to determine the instructions to be executed by the processing circuitry.Type: ApplicationFiled: August 21, 2018Publication date: February 27, 2020Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Frederic Claude Marie PIRY, Albin Pierrick TONNERRE
-
Publication number: 20200057643Abstract: An apparatus and method are provided for performing branch prediction. The apparatus has processing circuitry for executing instructions out-of-order with respect to original program order, and event counting prediction circuitry for maintaining event count values for branch instructions, for use in making branch outcome predictions for those branch instructions. Further, checkpointing storage stores state information of the apparatus at a plurality of checkpoints to enable the state information to be restored for a determined one of those checkpoints in response to a flush event. The event counting prediction circuitry has training storage with a first number of training entries, each training entry being associated with a branch instruction.Type: ApplicationFiled: August 20, 2018Publication date: February 20, 2020Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Vincenzo CONSALES
-
Publication number: 20200050458Abstract: An apparatus and method are provided for performing branch prediction. The apparatus has processing circuitry to execute instructions, and branch prediction circuitry for making branch outcome predictions in respect of branch instructions. The branch prediction circuitry includes loop minimum iteration prediction circuitry having one or more entries, where each entry is associated with a loop controlling branch instruction that controls repeated execution of a loop comprising a number of instructions. During a training phase for an entry, the loop minimum iteration prediction circuitry seeks to identify a minimum number of iterations of the loop. The loop minimum iteration prediction circuitry is then arranged, when the training phase has successfully identified a minimum number of iterations, to subsequently identify a branch outcome prediction for the associated loop controlling branch instruction for use during the minimum number of iterations.Type: ApplicationFiled: August 10, 2018Publication date: February 13, 2020Inventors: Houdhaifa BOUZGUARROU, Luc ORION, Guillaume BOLBENES, Eddy LAPEYRE
-
Patent number: 10481914Abstract: Program flow prediction circuitry comprises a history register to store history data for at least one or more most recently executed branch instructions; a memory to store a plurality of sets of weight values, one set for each of a group of portions of one or more bits of the history data; access circuitry to access, for a current branch instruction to be predicted, a weight value for each of the portions of one or more bits of the history data by selecting from the set of weight values in dependence upon a current value of the portions of the history data; a combiner to generate a combined weight value by combining the weight values accessed by the access circuitry; a comparator to compare the combined weight value with a prediction threshold value to detect whether or not a branch represented by the current branch instruction is predicted to be taken; and weight modifier circuitry to modify the accessed weight values in dependence upon a resolution of whether the branch represented by the current branch insType: GrantFiled: November 8, 2017Date of Patent: November 19, 2019Assignee: ARM LimitedInventors: Guillaume Bolbenes, Houdhaifa Bouzguarrou, Luc Orion, Eddy Lapeyre
-
Publication number: 20190303161Abstract: An apparatus and method are provided for controlling branch prediction. The apparatus has processing circuitry for executing instructions, and branch prediction circuitry that comprises a plurality of branch prediction mechanisms used to predict target addresses for branch instructions to be executed by the processing circuitry. The branch instructions comprise a plurality of branch types, where one branch type is a return instruction. The branch prediction mechanisms include a return prediction mechanism used by default to predict a target address when a return instruction is detected by the branch prediction circuitry. However, the branch prediction circuitry is responsive to a trigger condition indicative of misprediction of the target address when using the return prediction mechanism to predict the target address for a given return instruction, to switch to using an alternative branch prediction mechanism for predicting the target address for the given return instruction.Type: ApplicationFiled: March 29, 2018Publication date: October 3, 2019Inventors: Luca NASSI, Houdhaifa BOUZGUARROU, Guillaume BOLBENES
-
Publication number: 20190196833Abstract: Data processing circuitry comprises fetch circuitry to fetch blocks, containing instructions for execution, defined by a fetch queue; and prediction circuitry to predict one or more next blocks to be fetched and to add the predicted next blocks to the fetch queue; the prediction circuitry comprising: branch prediction circuitry to detect a predicted branch destination for a branch instruction in a current block, the predicted branch destination representing either a branch target for a branch predicted to be taken or a next instruction after the branch instruction, for a branch predicted not to be taken; and sequence prediction circuitry to detect sequence data, associated with the predicted branch destination, identifying a next block following the predicted branch destination in the program flow order having a next instance of a branch instruction, to add to the fetch queue the identified next block and any intervening blocks between the current block and the identified next block, and to initiate branch prType: ApplicationFiled: December 22, 2017Publication date: June 27, 2019Inventors: Houdhaifa BOUZGUARROU, Guillaume BOLBENES, Vincenzo CONSALES, Eddy LAPEYRE
-
Publication number: 20190138315Abstract: Program flow prediction circuitry comprises a history register to store history data for at least one or more most recently executed branch instructions; a memory to store a plurality of sets of weight values, one set for each of a group of portions of one or more bits of the history data; access circuitry to access, for a current branch instruction to be predicted, a weight value for each of the portions of one or more bits of the history data by selecting from the set of weight values in dependence upon a current value of the portions of the history data; a combiner to generate a combined weight value by combining the weight values accessed by the access circuitry; a comparator to compare the combined weight value with a prediction threshold value to detect whether or not a branch represented by the current branch instruction is predicted to be taken; and weight modifier circuitry to modify the accessed weight values in dependence upon a resolution of whether the branch represented by the current branch insType: ApplicationFiled: November 8, 2017Publication date: May 9, 2019Inventors: Guillaume BOLBENES, Houdhaifa BOUZGUARROU, Luc ORION, Eddy LAPEYRE
-
Patent number: 9823932Abstract: A tagged geometric length (TAGE) branch predictor incorporates multiple prediction tables. Each of these prediction tables has prediction storage lines which store a common stored TAG value and a plurality of branch predictions in respect of different offset positions within a block of program instructions read in parallel. Each of the branch prediction has an associated validity indicator. Update of predictions stored may be made by a partial allocation mechanism in which a TAG match occurs and a branch storage line is partially overwritten or by full allocation in which no already matching TAG victim storage line can be identified and instead a whole prediction storage line is cleared and the new prediction stored therein.Type: GrantFiled: April 20, 2015Date of Patent: November 21, 2017Assignee: ARM LimitedInventor: Houdhaifa Bouzguarrou
-
Publication number: 20160306632Abstract: A tagged geometric length (TAGE) branch predictor 16 incorporates multiple prediction tables 20, 22, 24, 26. Each of these prediction tables has prediction storage lines which store a common stored TAG value 50 and a plurality of branch predictions 52, 54 in respect of different offset positions within a block of program instructions read in parallel. Each of the branch prediction has an associated validity indicator 56, 58. Update of predictions stored may be made by a partial allocation mechanism in which a TAG match occurs and a branch storage line is partially overwritten or by full allocation in which no already matching TAG victim storage line can be identified and instead a whole prediction storage line is cleared and the new prediction stored therein.Type: ApplicationFiled: April 20, 2015Publication date: October 20, 2016Inventor: Houdhaifa BOUZGUARROU