Skip to main content

Implementing the RISC-V Vector Extension

Supervisor

Suitable for

MSc in Advanced Computer Science
Computer Science, Part B
Mathematics and Computer Science, Part C
Computer Science and Philosophy, Part C
Computer Science, Part C

Abstract

Prerequisites:  None

 

Most modern processors implement data-level parallelism using sets of single instruction multiple data (SIMD) instructions that operate on dedicated 128, 256 and 512-bit registers. By contrast, the RISC-V instruction set architecture proposes a vector extension which is much closer in design to that first used in the Cray-1 supercomputer. This extension incorporates hardware level dynamic types to avoid the large number of SIMD instructions that older implementations typically require, and uses dedicated vector registers whose length can change between different implementations. This flexible design allows identical code to run on processors whose vector registers have different lengths.

In this project, you will explore the design of the vector extension through simulation. You will simulate the vector extension in software, developing a deep understanding of the instruction set, and then use this simulation to identify applications where vector extensions offer significant benefits over conventional SIMD instructions. As a stretch goal, you will implement the vector instruction in Verilog on an FPGA to realise a hardware implementation of a RISC-V processor capable of executing vector operations.