What is an ASIP?

An ASIP (Application-specific instruction set processor) is a processor designed with an instruction set that is targeted to meet the needs of a particular application. Usually the instruction set is created after analyzing the target software applications and identifying computational bottlenecks. The instruction set is optimized to address computational bottlenecks and to efficiently execute the target application.

An ASIP is synonymous with an application specific processor.

To go further, see also our detailed blog post on ASIPs.

Why do we need application-specific instruction set processor?

Similar to application specific processors, ASIPs are needed if specialization is required to meet the needs of a particular workload. For example, algorithms for cryptography, DSP or neural networks perform poorly on general purpose cores. However if the instruction set and microarchitecture is optimized for the algorithms, the resulting processor can be very efficient.

What is the relationship between ASIPs and RISC-V?

ASIPs have historically mainly developed with an ISA developed from scratch. While this may be optimal for certain applications it may be challenging for some design teams. If a 32- or 64-bit word length is suitable for an ASIP then the simplest starting point may be a RISC-V base integer instruction set. Additional instructions can be devised using RISC-V custom instruction rules. This significantly reduces the threshold for developing an ASIP.

In other cases, for example when needing to us a different word length such as 8-bit or for using a non-RISC-V register bank, then developing from scratch in the traditional ASIP way makes sense.

Getting started with Codasip