2021 Engineering Internship – Branch Predictions/Prefetcher microarchitecture modelling and analysis

ARM (Sophia Antipolis, France) Publié il y a 6 jours

We are an Equal Opportunity Employer and do not discriminate against any employee or applicant for employment because of race, color, sex, age, national origin, religion, sexual orientation, gender identity, status as a veteran, and basis of disability or any other federal, state or local protected class.

Job Description

We are the CPU Technology team, part of Arm Central Technology Group. This diverse engineering-centric group invents, defines and architects Technologies to be deployed in tomorrow's IP solutions from Arm. The CPU Technology team tackles next-generation Arm CPUs, inventing new concepts that will fuel billions of devices worldwide.

Are you a forward-thinking, passionate engineer motivated by the challenge of working on this ground-breaking technology? If so, we look forward to learning more about you.
We have a variety of internships to offer you. All selected subjects are highly challenging projects, requiring deep interest in advanced processor features, excellent knowledge of computer systems, strong analytic skills, and a high degree of autonomy and creativity.
When applying for the position, please specify which subject(s) you are most interested in.

[2021 – P1] CPU Branch predictions microarchitecture modelling and analysis 
Branch prediction technics are an exhausted technology with very small diminishing return (for current table/global history sizes).  An alternative approach to improve ILP on applications with hard-to-predict branches – reduce branch misprediction cost. One of the ideas for doing this – try to utilize control-independence (CI) property. Currently, all uops in the shadow of branch misprediction are assumed to be dependent on the branch. While most of the CF has a huge amount of branch independent uops. They can be saved after misprediction or they can be prioritized vs. speculative instructions dependent on the hard to predict branch. 
[2021 – P2]  CPU Prefetcher algorithms and microarchitecture

In order prefetch for OoO CPUs. Due to the fact that CPUs are making more and more clever stuff to improve out-of-orderness for performance gain, PF module is struggling to get proper training. While there are workarounds for this problem (like generic prefetchers which are learning global patterns instead of streams), but they do usually lead to slower training. There could be several angles to look at for solution of this problem. One would be a prefetch ROB which could order back accesses for prefetch training. Another solution could be an algorithm resilient to OoO. One more point to look at would be prefetch training in in-order part of the CPU core logic (in this case prefetcher would be naturally trained in-order). While all the proposals have their advantages and some examples of being actually used (except the last one), implementation cost could be significantly different.

Job Requirements

What are your responsibilities as a CPU Branch predictions microarchitecture modelling and analysis Engineer?

  • Using cycle-accurate simulators and the latest benchmarks compare different approaches for CI utilization.

  • Implementing a set of counters which will help to estimate technique coverages and upper-bound performance.

  • Comparing coverage and UB performance for different approaches and choosing the most promising one. It shouldn’t include implementation of any behavioural model of the techniques but check only counters which will help to show the potential.
    E.g. we can check the distribution of branch misprediction inside procedure calls (for dynamic multithreading technique).

  • Checking a histogram of procedure sizes and branch misprediction point (procedure head/tail etc). 

What are your responsibilities as a Prefetcher algorithms and microarchitecture Engineer?
  • Have a look at prio-art solutions of OoO prefetch training problem and weight different approaches based on their pros and cons.
  • Implement the most promising solution(s) in the ACME model of Makalu CPU and benchmark it.
  • To assess the RTL feasibility of the proposed solution(s) 

What skills, experience, and qualifications do You need for any of these roles above?

  • Use of UNIX and shell programming
  • Keen interest in Computer Science
  • Software (Python/C/ C++)
  • Hardware engineering knowledge
  • You have good written and verbal communication skills
  • Knowledge of French can be a good advantage 
  • Fluent English 
  • You have a passion to innovate, think different, explore new avenues


Salary – 1750 euros / month

1 day off (authorized leave) / month

Internship duration

5 to 6 months



Your particular benefits package will depend on position and type of employment and may be subject to change. Your package will be confirmed on offer of employment. Arm’s benefits program provides permanent employees with the opportunity to stay innovative and healthy, ensure the wellness of their families, and create a positive working environment.

  • Annual Bonus Plan
  • Discretionary Cash Award
  • Supplementary pension
  • Private Medical Insurance (employee & family)
  • Life Insurance
  • Holiday, 25 days annual leave
  • Sabbatical, 20 paid business days every four-years of service
  • Volunteering, One (1) paid working day each year (TeamARM)
  • Others, free car parking, luncheon vouchers & Public Transport Pass reduction, team and social events

About Arm

Arm® technology is at the heart of a computing and connectivity revolution that is transforming the way people live and businesses operate. From the unmissable to the invisible; our advanced, energy-efficient processor designs are enabling the intelligence in 86 billion silicon chips and securely powering products from the sensor to the smartphone to the supercomputer. With more than 1,000 technology partners including the world’s most famous business and consumer brands, we are driving Arm innovation into all areas compute is happening inside the chip, the network and the cloud.

With offices around the world, Arm is a diverse community of dedicated, innovative and highly talented professionals. By enabling an inclusive, meritocratic and open workplace where all our people can grow and succeed, we encourage our people to share their unique contributions to Arm's success in the global marketplace.

2021 Engineering Internship – Branch Predictions/Prefetcher microarchitecture modelling and analysis

Postuler sur le site de l'entreprise
Back to search page