VSD - RISCV : Instruction Set Architecture (ISA) - Part 1a

Overview

RISC-V is a free and open RISC instruction set architecture. and was originally developed in Computer Science division of the EECS Department at the University of California, Berkeley This course will talk a lot about RISC-V ISA from scratch, also including a section about why do we even need a computer architecture and how real-time day-to-day apps run on a computer, with examples

The final aim of this course is to help everyone to build a robust specifications, which is the very first criteria behind system design. In the upcoming courses,, these specifications will be coded in RTL hardware description language using verilog/vhdl and finally the RTL will placed and routed using opensource EDA tool chain.

This course will walk you through the specifications, starting from signed/unsigned integer representation till RV64IMFD Instruction set with some really cool images and examples. The conventions like "IMFD" will also be explored in a unique fashion, which is being never done before and any micro-processor or micro-controller related courses

Acknoledgements -

I would like to Thank SiFive, a company that was founded by the creators of RISC-V ISA.

I would also like to Thank Prof. David Patterson and his book "Computer Organization And Design - RISCV edition" which immensely helped in the making of this course.

Objective

  • Introduction
  • Course Content

    • From apps to hardware
    • Detailed description of course content with examples
  • Integer number representation

    • 64-bit number system for unsigned numbers
    • 64-bit number system for signed numbers
  • Application binary interface (ABI)
    • Introduction to application binary interface (ABI)
    • Memory allocation for doublewords - "little-endian"
    • Representation of load, add and store instructions with example
    • Concluding 'need' for 32-registers and their respective ABI names
  • Memory allocation and stack pointer
    • Introduction to 'jump and link' instruction
    • Unconditional jump using 'jalr' and introduction to stack pointer (sp)
    • From 'c' program to 'risc-v' ISA and introduction to pseudo instructions
    • Status of instruction address, program counter and stack pointer
  • Analyze assembly language program in RISC-V format
    • Instruction to store data from register to stack
    • Steps to jump to proc and return to main program using 'auipc' and 'jalr'
    • Steps to load user input from scanf procedure
  • Analysis of leaf and nested procedure
    • Load arguments and jump to leaf proc
    • Leaf proc execution
    • Retrieve return address (ra) and stack pointer (sp) register values
  • Conclusion and Assignment

Audience Profile

  • Anyone who wants to understand language of computer
  • Anyone who wants to learn processor architecture
  • Anyone who wants understand how apps run on chips inside computer

Prerequisites

  • You should be familiar with binary numbers. This is anyways covered in brief

Tools Used

RISC-V GNU Compiler, is the RISC-V C and C++ cross-compiler. It supports two build modes:a generic ELF/Newlib toolchain and a more sophisticated Linux-ELF/glibc toolchain.

Buy the course :

Presentation of the video courses powered by Udemy for WordPress.