Intro and Overview:
While taking 2 courses on Computer Architecture (lab and lecture) with MIPS, I decided to compile the best resources that I could find and share some fun things I learned and built!
I also built several interesting programs including a calculator, implemented bubble sort, and much more... I will share all the code at the end of the semester!
MIPS is a RISC processer (reduced instruction set), the opposite would be CISC (complex), with processers such as the Intel Core and AMD Ryzen CPUS.
The practical course primarily dealt with integers, which makes life way easier. We coded in the MIPS Mars Simulator (which has some cool tricks to it). Towards the end of the theoretical course we did cover Floating Point Conversions and Booth's Algorithm for multiplication.
Prerequisites:
Courses:
- You need to understand all the basic logic gates, registers, ALUs, conversion between bases, sign magnitude ,2s complement, Boolean addition, subtraction, and multiplication.
Next, I advise you to take an Intro to Computer Science course before starting a Computer Architecture course.
- This will allow you to understand the bigger picture in addition to assisting you with programming in the MIPS language.
Additional subject matter:
Math:
- Thankfully these courses don't require a high level of math, with that being said... you should know your powers of 2...
- including 2^0 and the negative exponents.
- this is because we are constantly using binary digits and need to convert easily
- Basic addition, long division, multiplication.
- Mainly for converting between different bases.
The Fun Part:
Resources:
Books:
In addition, I would like to recommend this book "Computer Organization and Design MIPS Edition" , which aided me a lot in computer architecture. Note that in some additions, they have a chapter on Pipelining and others remove that chapter and replace it with Multi-Cycle... My course required us to know both, so it was a bit annoying to have to get another edition of the book.
Please ask your professor if they are going to cover Pipelining and/or/neither Multi-Cycle and then you can make your decision based off of that.
- the book authors also have presentation slides which your school might utilize.
I have the 3rd Edition Morgan-Kaufmann version which has a chapter on Pipelining as well as a portion on Multi-Cycle processers.
See MIPS Run is also a popular addition.
Note that Digital Systems was a prerequisite for this course, so you should also read this:
Introduction to Logic Circuits & Logic Design with VHDL (VHDL is a net bonus and the course I took didn't require it, I study CS and not Engineering which is why). You can skip those parts in the chapter if you wish!
You can purchase the books online, borrow from a library, or find some of them online.
Slides:
Videos:
Here is a playlist of the best videos I found covering coding in assembly as well as the theocraticals:
No comments:
Post a Comment