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.