Welcome, so in this course, we're going to be learning about computer architecture.
This course is an adaptation of a course which I teach at
Princeton University called ELE or for Electrical Engineering 475.
I'm David Wentzlaff, I'm a professor here at Princeton and my background is
mostly looking at how to build many core and multicore microprocessors.
In the past, I've actually built two of the world's fastest mini microprocessors
in industry and
before that I've worked in academia building many core microprocessors.
So about 15 years of processor design experience.
In today's lecture, we're going to be talking about an introduction of some
opening to what is computer architecture?
Why do you want to learn computer architecture?
How it's different than previous courses that you might have taken,
something like a computer organization class, or a logic design course.
And then we'll talk about some content today, which is looking at
Instruction Set Architectures and how a Instruction Set Architecture or
Big-A Architecture is different than implementation, or microarchitecture, and
why it's a good idea to split out these two ideas.
Let's take a step back and look at the course administration of this class and
how this class is going to be organized.
As I said, I'm David Wentzlaff.
This class is roughly going to be the equivalent of two 80-minute lectures
a week, so
this is the same format that's used at Princeton University for this course.
We're going to try to segment into shorter segments to give you bite-sized nuggets
with questions and
answers intermixed to check your understanding as the video goes on.
Two books that I wanted to talk about.
This is the Computer Architecture, a quantitative approach
by John Hennesy and David Patterson, this is a very, very good book.
If you are going to be doing computer architecture, I highly recommend it and
it's a heavily, heavily, heavily suggested book for this course.
I do want to point out that there's a lot of different versions of this book
floating around, we're going to be using the fifth edition, and
you should go get the fifth edition.
The fifth edition is very different than the fourth edition,
it's updated as of 2012, so it's very fresh.
And then a auxiliary text, which is useful for a proportion of this class,
I'll mention it as the Shen-Lipasti book because the two authors,
Modern Processor Design and Fundamentals of Superscalar Processors.
The reason we're going to use this book or the reason that
I'll recommend some readings out of this book is that it has a lot deeper coverage
of superscalar processors than the Computer Architecture book.
This is a great book to begin with but
it doesn't cover how to build superscalar processors in great depth.
This book goes on to do that and
that's something we're going to be talking a lot about in this course.
A lot of the content of a traditional computer organization class,
I'm going to repeat in the first three and a half lectures of this course.
The reason for this is because I teach everything from first principles and
want to get everyone on the same page but we're going to go very,
very fast through that material.
If you've not had a computer organization class,
it may be possible to take this class but
I highly recommend taking a computer organization class before this class.
Because this is the second class into the computer architecture series
where you'd have computer organization and computer architecture and
we really do rely on the pre-recs.
But if you are watching the first three lectures and
you say I know all this, yes, that is correct you should know all this.
If you don't know all this, then you should probably go back and
retake Computer Organization or take a computer organization class.
But don't drop the class if you take the first three lectures and
say I know all this and just leave at that point because we're just going to breeze
through that content very fast as building from first principles.