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 Required:
- 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:
Another note - The lecture portion:
There are two segments to the computer architecture class... a lab and lecture. The lab involves programming in assembly and submitting code as assignments. The lecture is on the architecture, how the data-path works, etc.
For example, what happens when a command gets executed on the hardware level. This is more abstract and not-hands on. Nonetheless, it is quite important to learn how these micro-processers work.
Cool trick below:
Using the MARS Simulator, I was able to visualize how the internals of the MIPS chip would work (it is an oversimplification of the data-path but still helpful). If you don't have the tool installed, I linked to it further down in the article (under resources).
Datapath of single cycle |
Branch command in MIPS |
ALU, RF, and Control in MIPS |
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 editions, 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.
The newer versions usually skip multi-cycle and go directly to pipelining but check the table of contents before purchasing or downloading.
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.
See MIPS Run is also a popular addition.
Note, that Digital Systems was a prerequisite for this course, so you should also read this (before the MIPS stuff!):
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
Thank you for posting a comment, it will be reviewed and then posted shortly.