YouSaid · the spoken record
David Patterson
- lines on the record
- 127
- first
- 2020-06-27
- most recent
- 2020-06-27
- sittings or episodes
- 1
- sources
- podcast
Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections
“Yeah, I'd say Think designing a good instruction set as an art, and I think you're trying to balance. The simplicity and speed of execution with how well easy it will be for compilers to use it. You're trying to create an instruction set that everything in there can be used by compilers. There's not things that are missing that'll make it difficult for the program to run that run efficiently, but you want it to be easy to build as well. So it's that kind of, so you're thinking, I'd say you're thinking hardware, trying to find a hard software compromise that'll work well. And it's a matter of taste, right? It's kind of fun to build instructions.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“These complex instructions and translate them into essentially in risk instructions in hardware on the fly at gigahertz clock speeds and then any good idea the risk people had they could use and they could still be compatible with this really valuable PC software base which also had very high volumes 100 million personal computers per year so the sysk architecture in the business world was actually one in in this pc era”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“And what happened was what was interesting, a bunch of the CIS companies with CISC instruction sets of vocabulary, they gave up, but not Intel. What Intel did to its credit because Intel's vocabulary was in the personal computer. And so that was a very valuable vocabulary because the way we distribute software is in those actual instructions. It's in the instructions of that instruction set. You don't get that source code, what the programmers wrote. You get after it's been translated into the list level. That's if you were to get a floppy disk or download software. It's in the instructions of that instruction set. So the x86 instruction set was very valuable. So what Intel did cleverly and amazingly is they had their chips in hardware do a translation step. They would take”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“And so it's harder to build. The compiler doesn't use them that much. The simple instructions go better with Morris Law, the number of transistors is doubling every two years, so we're going to have the, you want to reduce the time to design the microprocessor. That may be more important than these number instructions. So I think we believed in that we were right, that this was the best idea. Then the question became in these debates, well, yeah, that's a good technical idea, but in the business world, this doesn't matter. There's other things that matter. It's like arguing that if there's a standard with the railroad tracks and you've come up with a better width, but the whole world is covered in railroad tracks, so your ideas have no chance of success. Commercial success. It was technically right, but commercially, it'll be insignificant.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, no, it was easy to make the argument against it. Well, this was my colleague John Hennessy at Stanford and I were both assistant professors. And for me, I just believed in the power of our ideas. I thought what we were saying made sense. Moore's law is going to move fast. The other thing that I didn't mention is one of the surprises of these complex instruction sets. You could certainly write these complex instructions if the programmer is writing them themselves. It turned out to be kind of difficult for the compiler to generate those complex instructions. Kind of ironically, you'd have to find the right circumstances that just exactly fit this complex instruction. It was actually easier for the compiler to generate these simple instructions. So not only did these complex instructions make the hardware more difficult to build, often the compiler wouldn't even use them.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Was kind of the three places that were these radicals that advocated for this against the rest of the community were IBM, Berkeley, and Stanford.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So, lots of layers there are probably written in these old fashioned efficient languages that still take one step to produce these instructions, produce risk instructions, but they're composed each layer of software invokes one another through these interfaces and you can get 10 layers of software that way.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So both the operating system could be written in C and the application could be written in C. But you could construct those two layers and the applications absolutely do call upon the operating system. And the change was that both of them could be written in higher level languages. So it's one step of a translation, but you can still build many layers of abstraction of software on top of that. And that's how things are done today. Still today, many of the layers that you'll deal with, you may deal with debuggers, you may deal with linkers. There's libraries. Many of those today will be written in C++, say, even though that language is pretty ancient. And even the Python interpreter is probably written in C or C.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Of each other, um, so what's true and not true about what you said is. Several of the layers of software So if you hear two layers would be, suppose we just talk about two layers. That would be the operating system, like you get from Microsoft or from Apple, like iOS or the Windows operating system. And let's say applications.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“And so that was the debate, and people would acknowledge that the simpler instructions could lead to a faster computer. You can think of monosyllabic instructions. You could say them, you know, if you think of reading, you could probably read them faster or say them faster than long instructions. The same thing, that analogy works pretty well for hardware. And as long as you didn't have to read a lot more of those instructions, you could win. So that's the basic idea for risk.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So that changed with a famous operating system called Unix, which is kind of the grandfather of all the operating systems today. So Unix demonstrated that you could write something as complicated as an operating system in a language like C. So once that was true, then that meant we could hide the instruction set from the programmer. And so that meant then it didn't really matter. The programmer didn't have to write lots of these simple instructions. That was up to the compiler. So that was part of our arguments for risk is if you were still writing an assembly language, there's maybe a better case for sys constructions. But if the compiler can do that, it's going to be, you know, that's done once the computer translates it once, and then every time you run the program, it runs at this potentially simpler instructions.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So let's try and split that into two pieces. So if the compiler can do that for you, if the compiler can take a complicated program and produce simpler instructions, Then the programmer doesn't care, right? Programmer, I don't care just how fast is the computer I'm using, how much does it cost? And so what happened kind of in the software industry is right around before the 1980s, critical pieces of software were still written not in languages like C or C++. They were written in what's called assembly language, where there's this kind of humans writing exactly at the instructions at the level that a computer can understand. So they were writing ads, subtract, multiply, you know, instructions. It's very tedious, but the belief was to write this lowest level of software that people use, which are called operating systems, they had to be written in assembly language because these high-level languages were just too inefficient. They were too slow, or the programs would be too big.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Risk versus CIS. And believe it or not, this sounds very, very, you know, who cares about this, right? It was violently debated at several conferences. It's like, what's the right way to go? And people thought risk was de-evolution. We're going to make software worse by making the instructions simpler and there are fierce debates at several conferences in the 1980s. later in the 80s it kind of settled to these benefits”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, since they're these reduced instructions, you have to execute more of them. Yeah, that's right. But maybe you execute them faster. Yeah, that's right. They're simpler so they can go faster, but you have to do more of them. So what's that trade-off look like? And it ended up that we ended up executing maybe 50% more instructions, maybe a third more instructions, but they ran four times faster. So this risk controversial risk ideas proved to be maybe factors of three or four better.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“That would be a better way to build microprocessors since they're going to be changing so fast due to Moore's law. And then we'll just use standard software to cover, generate more of those simple instructions. And one of the pieces of software that's in that software stack going between these layers of abstractions is called a compiler. And it's basically translates. It's a translator between levels. We said the translator will handle that. So the technical question was.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“polynomial vide or sort a list and the hope was of these powerful vocabularies that make it easier for software So we thought that didn't make sense for microprocessors or people at Berkeley and Stanford and IBM who argued the opposite. And we called that was a reduced instruction set computer in the abbreviation was RISC and typical for computer people. We use the abbreviations to start pronouncing it. So risk was the thing. So we said for microprocessors, which with Gordon's more is changing really fast, we think it's better to have a pretty simple set of instructions, reduce set of instructions.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“That's proprietary. The other one that's very popular is from ARM. That kind of powers all the cell phones in the world, all the iPads in the world, and a lot of things that are so-called Internet of Things devices ARM. And that one is also proprietary, ARM will license it to people for a fee, but they own that. So the new idea that got started at Berkeley kind of unintentionally 10 years ago is early in my career, we pioneered a way to do these vocabularies, instruction sets that was very controversial at the time. At the time, in the 1980s, conventional wisdom was these vocabularies and instruction sets should have powerful instructions. So polysyllabic kind of words you can think of that. And so instead of just add, subtract a multiply, they would have”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So a very popular one is Olden by Intel, the one that's in the cloud and in all the PCs in the world. Intel owns that instruction set. It's referred to as the x86. There have been a sequence of ones that the first number was called 8086. And since then, there's been a lot of numbers, but they all end in 86. So there's been that kind of family of instruction sets.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, so let's talk about that a little bit. So when you get down to the bottom layer of software, the way software talks to hardware is in a vocabulary, in what we call that vocabulary, we call that the words of that vocabulary called instructions in the technical term for the vocabulary is instruction set. So those instructions are like we talked about earlier. There can be instructions like add, subtract, and multiply, divide. There's instructions to put data into memory, which is called a store instruction and to get data back, which is called a load instructions. And those simple instructions go back to the very dawn of computing in 1950. The commercial computer had these instructions. So that's the instruction set that we're talking about. So up until, I'd say, 10 years ago, these instructions sets are all proprietary.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So it's a remarkable time that for the interested individual can really see in great depth what's really going on in the computers that power everything that we see around us.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“kind of magnetic field. If you're interested, you can go into any depth and keep going. In particular, what's happening right now, or what's happened in software the last 20 years and recently in hardware, there's getting to be open source versions of all of these things. So what open source means is what the engineer, the programmer designs, it's not secret belonging to a company, it's out there on the World Wide Web so you can see it. So you can look at for lots of pieces of software that you use, you can see exactly what the programmer does if you want to get involved. That used to stop at the hardware. Recently, there's been an effort to make open source hardware and those interfaces open so you can see that. So instead of before you had to stop at the hardware, you can now start going layer by layer below that and see what's inside there.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“The exciting part about it is you can keep peeling those layers. You take your first course and you might learn to program in Python and then you can take a follow-on course and you can get it down to a lower level language like C and you can go and then you can if you want to, you can start getting into the hardware layers and you keep getting down all the way to that transistor that I talked about that Gordon Moore predicted. And you can understand all those layers all the way up to the highest level application software. So it's a very”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“We suspend disbelief and pretend that the only thing you know is that layer and you don't know anything about the layer below it. And that's the way we can make very complicated things. And probably it started with hardware. That's the way it was done. But it's been proven extremely useful. And I would say in a modern computer today, there might be 10 or 20 layers of abstraction. And they're all trying to kind of enforce this contract is all you know is this interface. There's a set of commands that you are allowed to use and you stick to those commands and we will faithfully execute that. And it's like peeling the layers of London. You get down, there's a new set of layers and so forth. For people who want to study computer science,”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“I think that's one of the things that computer science fundamentals is these things are really complicated in the way we cope with complicated software and complicated hardware is these layers of abstraction and that simply means that”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“This stuff is getting so popular, it's actually leaking out of our nerdy world into the real world. There is events like that. I think another one was I remember with in the early days of the personal computer, when we started seeing advertisements in magazines for personal computers, like it's so popular that it made the newspapers. So at one hand, Gordon Moore predicted it and you kind of expected it to happen, but when it really hit and you saw it affecting society, it was shocking.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“So it's not kind of, it's at one sense, this is what was predicted and you could imagine it was easy to believe that Morris Law was going to continue. And so this would be the implications. On the other side, there were these shocking events in your life. Like I remember driving in Marian across the bay in San Francisco and seeing a bulletin board at a local civic center and it had a URL on it. And it was like for the people at the time, these first URLs, and that's the www select stuff with the HTTP, people thought it was look like alien writing, right? You'd see these advertisements and commercials on building boards that had this alien writing on it. So for the lay people, it was like, what the hell is going on here? And for those people in the industry, it was, oh my God.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source
“Every year for the next decade. And he said this in 1965. And in 1975, he said, well, maybe it's going to double every two years. And what other people since named that Moore's Law guided the industry. And when Gordon Moore made that prediction, he wrote a paper back in, I think, in the 70s and said, is this going to happen, he wrote, what would be the implications of that? And in this article from 1965, he shows ideas like computers being in cars and computers being in something that you would buy in the grocery store and stuff like that. So he kind of not only called his shot, he called the implications of it. So if you were in the computing field and if you believed Morris' prediction, he kind of said what would be happening in the future.”
2020-06-27 · Lex Fridman Podcast · #104 – David Patterson: Computer Architecture and Data Storage · IDENTIFIED FROM THE TRANSCRIPT · source