US 12,293,185 B2
Branch prediction using hypervectors
Ilias Vougioukas, Cambridge (GB); Andreas Lars Sandberg, Cambridge (GB); and Nikos Nikoleris, Cambridge (GB)
Assigned to Arm Limited, Cambridge (GB)
Appl. No. 18/245,840
Filed by Arm Limited, Cambridge (GB)
PCT Filed Nov. 26, 2020, PCT No. PCT/EP2020/083485
§ 371(c)(1), (2) Date Mar. 17, 2023,
PCT Pub. No. WO2022/063419, PCT Pub. Date Mar. 31, 2022.
Claims priority of application No. 20386046 (EP), filed on Sep. 24, 2020.
Prior Publication US 2023/0342150 A1, Oct. 26, 2023
Int. Cl. G06F 9/30 (2018.01); G06F 9/38 (2018.01)
CPC G06F 9/30061 (2013.01) [G06F 9/30036 (2013.01); G06F 9/3804 (2013.01); G06F 9/3844 (2013.01); G06F 9/3848 (2013.01)] 19 Claims
OG exemplary drawing
 
1. An apparatus comprising:
processing circuitry configured to perform data processing operations in response to instructions, wherein the instructions comprises branch instructions;
branch prediction circuitry configured to generate a prediction with respect to a branch instruction of whether a branch specified by the branch instruction will be taken or not-taken; and
hypervector storage configured to store at least one of a taken hypervector and a not-taken hypervector,
wherein the processing circuitry is configured to perform speculative instruction execution based on the prediction generated by the branch prediction circuitry,
and the branch prediction circuitry comprises hypervector generation circuitry configured to assign an arbitrary hypervector in deterministic dependence on an address of the branch instruction, wherein the hypervector comprises at least 500 bits,
wherein the branch prediction circuitry is responsive to a resolution of the branch specified by the branch instruction when the processing circuitry has executed the branch instruction to add the hypervector to the stored taken hypervector or the stored not-taken hypervector in dependence on the resolution of the branch,
wherein the branch prediction circuitry is configured to generate the prediction in dependence on a mathematical distance metric of the hypervector from the stored at least one of the taken hypervector and the not-taken hypervector, and
wherein when adding the hypervector to the stored taken hypervector or the stored not-taken hypervector in dependence on the resolution of the branch, the branch prediction circuitry is configured to apply a value limitation function to each hypervector element.