1 00:00:00,000 --> 00:00:15,900 2 00:00:15,900 --> 00:00:16,740 Don't move. 3 00:00:16,740 --> 00:00:19,020 Welcome to the Distinguished Lecture Series. 4 00:00:19,020 --> 00:00:20,940 I'm Karen Matthews, of University Video 5 00:00:20,940 --> 00:00:22,230 Communications. 6 00:00:22,230 --> 00:00:23,940 Our program is designed to enrich 7 00:00:23,940 --> 00:00:25,740 graduate and upper-division curriculum 8 00:00:25,740 --> 00:00:28,680 with academic presentations by top computer scientists 9 00:00:28,680 --> 00:00:29,790 from industry. 10 00:00:29,790 --> 00:00:31,440 Speakers and topics were nominated 11 00:00:31,440 --> 00:00:35,340 by computer science faculty of more than 50 universities. 12 00:00:35,340 --> 00:00:38,010 This presentation is sponsored by Education and Research 13 00:00:38,010 --> 00:00:40,350 Programs of Sun Microsystems. 14 00:00:40,350 --> 00:00:42,720 Bill Joy, a leader in computer architecture, 15 00:00:42,720 --> 00:00:45,750 received his Master's degree in Computer Science and Electrical 16 00:00:45,750 --> 00:00:47,850 Engineering from the University of California 17 00:00:47,850 --> 00:00:50,430 at Berkeley, where he was the principal designer of Berkeley 18 00:00:50,430 --> 00:00:51,600 UNIX. 19 00:00:51,600 --> 00:00:54,480 A founder of Sun Microsystems, in 1982, 20 00:00:54,480 --> 00:00:56,910 he designed Sun's network file system 21 00:00:56,910 --> 00:00:59,910 and worked on their scalable risk processor. 22 00:00:59,910 --> 00:01:02,130 Currently Vice President of Research and Development 23 00:01:02,130 --> 00:01:05,250 at Sun Microsystems, Bill Joy's talk today 24 00:01:05,250 --> 00:01:07,500 is The Future of Computing-- 25 00:01:07,500 --> 00:01:09,540 The Open Systems Imperative. 26 00:01:09,540 --> 00:01:12,160 It's our pleasure to introduce Bill Joy. 27 00:01:12,160 --> 00:01:12,660 Bill? 28 00:01:12,660 --> 00:01:18,870 29 00:01:18,870 --> 00:01:19,860 Hello. 30 00:01:19,860 --> 00:01:23,820 I'd like to talk to you today about the future of computing. 31 00:01:23,820 --> 00:01:27,360 In particular, I'd like to start with a definition 32 00:01:27,360 --> 00:01:31,410 of the problem that we see and also the enormous opportunity 33 00:01:31,410 --> 00:01:34,810 for the future uses of computers. 34 00:01:34,810 --> 00:01:36,780 The big problem in the marketplace today 35 00:01:36,780 --> 00:01:38,910 is that people are beginning to apply computers 36 00:01:38,910 --> 00:01:41,550 to very large tasks, tasks that involve 37 00:01:41,550 --> 00:01:43,920 many different computing systems, which must work 38 00:01:43,920 --> 00:01:48,090 together, and which involves very large pieces of software, 39 00:01:48,090 --> 00:01:51,150 which have to run in a distributed environment. 40 00:01:51,150 --> 00:01:53,820 This is a severe problem in constructing 41 00:01:53,820 --> 00:01:55,920 these kinds of systems. 42 00:01:55,920 --> 00:02:00,090 And to boot, we have the problem of very rapid change 43 00:02:00,090 --> 00:02:01,800 in the component technologies. 44 00:02:01,800 --> 00:02:04,440 Rapid innovation is occurring in many places. 45 00:02:04,440 --> 00:02:08,039 Microprocessors are getting faster, networks are changing, 46 00:02:08,039 --> 00:02:11,670 and no single organization controls all the pieces. 47 00:02:11,670 --> 00:02:14,670 So it's very difficult to build and integrate these systems, 48 00:02:14,670 --> 00:02:18,450 both from a hardware and a software standpoint. 49 00:02:18,450 --> 00:02:21,153 What we'd like to describe today is an approach 50 00:02:21,153 --> 00:02:23,070 we've taken at Sun Microsystems and one that's 51 00:02:23,070 --> 00:02:25,050 becoming dominant in the industry, what we'd 52 00:02:25,050 --> 00:02:27,490 call the open systems approach. 53 00:02:27,490 --> 00:02:30,450 This approach involves using industry standards 54 00:02:30,450 --> 00:02:33,300 whenever possible to allow these kinds of large systems 55 00:02:33,300 --> 00:02:36,840 to be built. Rather than developing our own technology, 56 00:02:36,840 --> 00:02:40,080 if possible, we license technology from others. 57 00:02:40,080 --> 00:02:42,270 And when we develop new technology, 58 00:02:42,270 --> 00:02:44,790 we describe the interfaces so that other people can also 59 00:02:44,790 --> 00:02:47,040 implement them. 60 00:02:47,040 --> 00:02:50,160 It's a kind of environment where we work with other vendors 61 00:02:50,160 --> 00:02:52,500 and create a competitive environment 62 00:02:52,500 --> 00:02:55,170 and one which we hope will provide better values 63 00:02:55,170 --> 00:02:56,410 to our customers. 64 00:02:56,410 --> 00:03:00,720 This kind of business approach is very highly leveraged. 65 00:03:00,720 --> 00:03:03,060 To give you examples of a couple of industries where 66 00:03:03,060 --> 00:03:05,380 this kind of approach has emerged, 67 00:03:05,380 --> 00:03:07,200 the first would be the PC-DOS industry. 68 00:03:07,200 --> 00:03:09,755 Basically, the set of IBM and IBM compatibles. 69 00:03:09,755 --> 00:03:11,130 What happened in this marketplace 70 00:03:11,130 --> 00:03:13,140 was IBM set some standards. 71 00:03:13,140 --> 00:03:16,710 Microsoft, which developed the software, licensed it freely, 72 00:03:16,710 --> 00:03:18,270 and a number of different companies 73 00:03:18,270 --> 00:03:22,590 then came into existence, which provided piece parts to people 74 00:03:22,590 --> 00:03:24,100 who wished to build systems. 75 00:03:24,100 --> 00:03:26,070 There's a lot of leverage in this industry. 76 00:03:26,070 --> 00:03:27,690 Some of the pieces are proprietary, 77 00:03:27,690 --> 00:03:30,090 but in general, the whole business environment 78 00:03:30,090 --> 00:03:31,050 is very open. 79 00:03:31,050 --> 00:03:32,940 There's room for people to add value. 80 00:03:32,940 --> 00:03:35,430 And this allows very valuable systems 81 00:03:35,430 --> 00:03:38,160 to be built at relatively low engineering cost. 82 00:03:38,160 --> 00:03:40,440 Another example is the workstation industry, 83 00:03:40,440 --> 00:03:42,780 where we see 32-bit microprocessors 84 00:03:42,780 --> 00:03:44,430 being the technology driver. 85 00:03:44,430 --> 00:03:46,740 It was the emergence of these microprocessors that 86 00:03:46,740 --> 00:03:49,050 made workstations possible, that allowed 87 00:03:49,050 --> 00:03:53,160 us to move the power of the mini computers to the desktop. 88 00:03:53,160 --> 00:03:54,960 The decline in the cost of RAM allowed 89 00:03:54,960 --> 00:03:57,030 us to put large memory on the desktop, 90 00:03:57,030 --> 00:04:00,000 and the emergence of UNIX as a software standard 91 00:04:00,000 --> 00:04:02,640 allowed applications to be portable. 92 00:04:02,640 --> 00:04:04,810 The inexpensive ethernet standard, 93 00:04:04,810 --> 00:04:07,230 the 10-megabit local area network 94 00:04:07,230 --> 00:04:09,370 connected all these systems together. 95 00:04:09,370 --> 00:04:11,070 And so we have as another example 96 00:04:11,070 --> 00:04:13,890 of an industry where all the piece parts are freely 97 00:04:13,890 --> 00:04:16,860 available and a very high growth market where, in fact, 98 00:04:16,860 --> 00:04:21,160 UNIX and open systems are a market requirement. 99 00:04:21,160 --> 00:04:23,010 So if we look at the kind of computers 100 00:04:23,010 --> 00:04:25,380 people have today and the kind of computers 101 00:04:25,380 --> 00:04:27,990 we expect to see available in people's work environments 102 00:04:27,990 --> 00:04:30,240 in the next five years, we see a number 103 00:04:30,240 --> 00:04:32,520 of older systems that are essentially 104 00:04:32,520 --> 00:04:34,350 one-vendor proprietary standards. 105 00:04:34,350 --> 00:04:37,260 In particular, there's a standard based around the IBM 106 00:04:37,260 --> 00:04:39,720 mainframe, there's a standard based around the DEC 107 00:04:39,720 --> 00:04:42,900 VAX and VAX/VMS, and also a proprietary standard 108 00:04:42,900 --> 00:04:45,000 developed by Apple Computer. 109 00:04:45,000 --> 00:04:46,500 The difficulty with these standards 110 00:04:46,500 --> 00:04:52,300 is that only a single vendor implements the base system. 111 00:04:52,300 --> 00:04:55,860 And so it's difficult or impossible to make 112 00:04:55,860 --> 00:04:58,410 an investment that's preserved in the different components 113 00:04:58,410 --> 00:04:59,750 of the system. 114 00:04:59,750 --> 00:05:02,880 On the other hand, we also have two open system standards, 115 00:05:02,880 --> 00:05:07,050 one based around UNIX, developed by AT&T, 116 00:05:07,050 --> 00:05:08,970 and one based around OS/2, developed 117 00:05:08,970 --> 00:05:12,430 by Microsoft, which are freely available to everyone. 118 00:05:12,430 --> 00:05:15,690 So if you have a good idea and you wish to start a company, 119 00:05:15,690 --> 00:05:19,170 you can pick either to develop on OS/2 or on UNIX 120 00:05:19,170 --> 00:05:20,970 and take advantage of all the investment 121 00:05:20,970 --> 00:05:22,830 that people have made in those systems. 122 00:05:22,830 --> 00:05:25,050 It is unnecessary to start from scratch 123 00:05:25,050 --> 00:05:26,785 and develop everything yourself. 124 00:05:26,785 --> 00:05:29,160 And that's very important, because that allows innovation 125 00:05:29,160 --> 00:05:34,420 to reach the marketplace without reinvention of everything. 126 00:05:34,420 --> 00:05:37,320 So the trend in the industry and the trend for the future 127 00:05:37,320 --> 00:05:40,710 is that people are investing in open systems and standards. 128 00:05:40,710 --> 00:05:43,207 UNIX and OS/2 will, we believe, get 129 00:05:43,207 --> 00:05:45,540 the most seats, the most committed vendors, and the most 130 00:05:45,540 --> 00:05:46,530 applications. 131 00:05:46,530 --> 00:05:49,710 It's basic economics that if 100 companies can invest 132 00:05:49,710 --> 00:05:51,473 in something, then more money will 133 00:05:51,473 --> 00:05:52,890 be invested in that than something 134 00:05:52,890 --> 00:05:54,090 only one company controls. 135 00:05:54,090 --> 00:05:57,100 136 00:05:57,100 --> 00:06:02,140 So being in universities, you've probably come in contact 137 00:06:02,140 --> 00:06:03,160 with UNIX systems. 138 00:06:03,160 --> 00:06:05,380 The UNIX system is very important, 139 00:06:05,380 --> 00:06:08,590 over the last 10 or 15 years, to the university computing 140 00:06:08,590 --> 00:06:09,520 environment. 141 00:06:09,520 --> 00:06:11,860 I'd like to talk next about how we 142 00:06:11,860 --> 00:06:13,880 see a UNIX standard emerging. 143 00:06:13,880 --> 00:06:16,570 There's been much discussion of the lack of a UNIX 144 00:06:16,570 --> 00:06:18,850 standard or the many UNIX standards, 145 00:06:18,850 --> 00:06:20,650 and this has created a lot of difficulty 146 00:06:20,650 --> 00:06:22,210 for the different UNIX vendors. 147 00:06:22,210 --> 00:06:24,880 148 00:06:24,880 --> 00:06:28,090 UNIX today is essentially a source-level operating system. 149 00:06:28,090 --> 00:06:29,620 There are many different versions 150 00:06:29,620 --> 00:06:32,620 that run on the many different platforms, ranging from the PC 151 00:06:32,620 --> 00:06:33,790 to the Cray. 152 00:06:33,790 --> 00:06:35,947 There is no binary standard and that 153 00:06:35,947 --> 00:06:37,780 creates a big problem, in the sense that you 154 00:06:37,780 --> 00:06:39,430 can't go down to your retail store 155 00:06:39,430 --> 00:06:41,320 and buy some UNIX software. 156 00:06:41,320 --> 00:06:44,380 And because UNIX didn't grow up on a single platform, 157 00:06:44,380 --> 00:06:47,720 there's also no single look and feel for the applications. 158 00:06:47,720 --> 00:06:50,440 So it's very difficult for an application developer 159 00:06:50,440 --> 00:06:53,140 to develop something that's, say, like the Macintosh, 160 00:06:53,140 --> 00:06:56,250 where his program is as easy to use as somebody else's, 161 00:06:56,250 --> 00:06:58,750 because you can push the same buttons and the same commands. 162 00:06:58,750 --> 00:07:01,810 163 00:07:01,810 --> 00:07:04,460 Part of the reason for this is UNIX's long history. 164 00:07:04,460 --> 00:07:07,060 It was really developed in the early '70s 165 00:07:07,060 --> 00:07:10,180 at Bell Labs Research on 16-bit minicomputers 166 00:07:10,180 --> 00:07:12,850 with paper terminal displays. 167 00:07:12,850 --> 00:07:14,960 This UNIX was exciting. 168 00:07:14,960 --> 00:07:17,300 It was a very powerful system. 169 00:07:17,300 --> 00:07:19,420 It had the C programming language, 170 00:07:19,420 --> 00:07:21,800 which was a very advanced language at the time. 171 00:07:21,800 --> 00:07:25,180 But the applications which were written for that system 172 00:07:25,180 --> 00:07:27,820 were necessarily limited by the fact 173 00:07:27,820 --> 00:07:30,830 that it was running on a 16-bit minicomputer and the fact 174 00:07:30,830 --> 00:07:34,000 that there was no sophisticated displays. 175 00:07:34,000 --> 00:07:35,680 The paper terminals were exciting 176 00:07:35,680 --> 00:07:39,400 if they could print both upper and lower case, for example. 177 00:07:39,400 --> 00:07:43,150 UNIX continued its evolution in the late '70s and early '80s 178 00:07:43,150 --> 00:07:46,060 at UC Berkeley in a project I was involved with, 179 00:07:46,060 --> 00:07:49,210 where we took UNIX and made it run well on the VAX 180 00:07:49,210 --> 00:07:51,130 and developed a lot of software which 181 00:07:51,130 --> 00:07:54,100 worked on 24x80 terminals. 182 00:07:54,100 --> 00:07:57,610 This made UNIX into a 32-bit system with virtual memory. 183 00:07:57,610 --> 00:07:59,740 And we added networking and screen editors, 184 00:07:59,740 --> 00:08:02,980 so this is a fairly substantial period of evolution for UNIX 185 00:08:02,980 --> 00:08:06,700 in a distributed environment, in a full 32-bit environment. 186 00:08:06,700 --> 00:08:09,190 For example, the PC standard that we 187 00:08:09,190 --> 00:08:12,610 have today on 286 and 386, that software 188 00:08:12,610 --> 00:08:16,450 is still stuck in the 16-bit space. 189 00:08:16,450 --> 00:08:19,300 More recently, say in the last five years, 190 00:08:19,300 --> 00:08:22,300 at Sun Microsystems, we've been using UNIX very 191 00:08:22,300 --> 00:08:25,930 heavily to take advantage of microprocessors and bitmap 192 00:08:25,930 --> 00:08:30,220 displays, which we can play with by the Rasterop primitive 193 00:08:30,220 --> 00:08:34,240 that you see on Macintosh and languages like Smalltalk. 194 00:08:34,240 --> 00:08:37,510 And the workstation market, which grew up around to 68,000 195 00:08:37,510 --> 00:08:39,970 in UNIX, was really the first UNIX-dominated market, 196 00:08:39,970 --> 00:08:42,460 unless you'd call the educational computer science 197 00:08:42,460 --> 00:08:44,830 department market a market. 198 00:08:44,830 --> 00:08:47,260 UNIX hasn't dominated in retail, it 199 00:08:47,260 --> 00:08:51,792 hasn't dominated in the mainframe-class machines. 200 00:08:51,792 --> 00:08:54,250 So it's important, if UNIX is to survive long-term, that it 201 00:08:54,250 --> 00:08:55,330 had one market that it owns. 202 00:08:55,330 --> 00:08:56,788 And this is really the market where 203 00:08:56,788 --> 00:09:00,140 UNIX is now totally dominant in the market requirement. 204 00:09:00,140 --> 00:09:02,440 And what we've done in the last five years to UNIX 205 00:09:02,440 --> 00:09:04,312 is we've put in the technical features 206 00:09:04,312 --> 00:09:06,520 to really take advantage of the distributed computing 207 00:09:06,520 --> 00:09:08,740 environment that's been emerging. 208 00:09:08,740 --> 00:09:11,590 Distributed file systems like NFS and RFS 209 00:09:11,590 --> 00:09:13,090 and the advanced windowing systems, 210 00:09:13,090 --> 00:09:15,580 like the X11 system or NeWS, allow 211 00:09:15,580 --> 00:09:18,010 UNIX to take advantage of graphics displays 212 00:09:18,010 --> 00:09:20,270 and develop sophisticated software. 213 00:09:20,270 --> 00:09:24,430 So what we've seen is 15 years of cultural compatibility 214 00:09:24,430 --> 00:09:25,000 with UNIX. 215 00:09:25,000 --> 00:09:27,040 We've had three five-year periods 216 00:09:27,040 --> 00:09:29,200 with three different kinds of platforms. 217 00:09:29,200 --> 00:09:31,670 But the application's base has remained the same 218 00:09:31,670 --> 00:09:33,970 and we've just added applications as we went along. 219 00:09:33,970 --> 00:09:35,728 There's a lot of loyal UNIX users. 220 00:09:35,728 --> 00:09:37,270 But there's some real severe problems 221 00:09:37,270 --> 00:09:40,330 if UNIX is to grow outside of the workstation market 222 00:09:40,330 --> 00:09:42,280 and outside of the universities. 223 00:09:42,280 --> 00:09:45,730 In particular, to achieve wide acceptance of UNIX, 224 00:09:45,730 --> 00:09:47,950 we need a single UNIX standard. 225 00:09:47,950 --> 00:09:50,380 We need, in fact, a binary standard, 226 00:09:50,380 --> 00:09:52,222 so that people can distribute software 227 00:09:52,222 --> 00:09:54,430 through channels other than the direct channel, where 228 00:09:54,430 --> 00:09:57,280 you can buy software in the store on a floppy disk. 229 00:09:57,280 --> 00:10:00,288 UNIX needs to take account of DOS and OS/2, 230 00:10:00,288 --> 00:10:01,330 which are very important. 231 00:10:01,330 --> 00:10:05,080 Lots of people are going to have OS/2 machines on their desk. 232 00:10:05,080 --> 00:10:07,540 UNIX has a number of problems, which have been 233 00:10:07,540 --> 00:10:08,830 bandied about over the years. 234 00:10:08,830 --> 00:10:10,465 Ease of use, security. 235 00:10:10,465 --> 00:10:12,340 These things need to be accounted for if UNIX 236 00:10:12,340 --> 00:10:13,957 is to continue to exist. 237 00:10:13,957 --> 00:10:15,790 And we also need to defend UNIX against what 238 00:10:15,790 --> 00:10:16,830 I would call the dark side. 239 00:10:16,830 --> 00:10:18,760 Namely, the proprietary vendors who wish UNIX 240 00:10:18,760 --> 00:10:19,942 would just go away. 241 00:10:19,942 --> 00:10:22,400 The fact that people like to use it doesn't matter to them. 242 00:10:22,400 --> 00:10:26,230 They have their own ax to grind. 243 00:10:26,230 --> 00:10:28,273 So what we've seen internationally 244 00:10:28,273 --> 00:10:30,190 is an awful lot of different people interested 245 00:10:30,190 --> 00:10:31,570 in UNIX standardization. 246 00:10:31,570 --> 00:10:33,190 AT&T has been working on an effort 247 00:10:33,190 --> 00:10:35,860 called SVID, the System V Interface Definition. 248 00:10:35,860 --> 00:10:39,700 There's an effort within IEEE to standardize UNIX, called POSIX. 249 00:10:39,700 --> 00:10:43,120 The Europeans have an effort, under the X/Open auspices, 250 00:10:43,120 --> 00:10:44,350 to standardize UNIX. 251 00:10:44,350 --> 00:10:47,200 And Japan has an effort to standardize UNIX 252 00:10:47,200 --> 00:10:48,868 based on Sigma. 253 00:10:48,868 --> 00:10:50,410 These efforts are all very important, 254 00:10:50,410 --> 00:10:52,118 because there's an awful lot of computers 255 00:10:52,118 --> 00:10:53,860 out there we'd like to run UNIX on. 256 00:10:53,860 --> 00:10:56,122 The difficulty is that none of these 257 00:10:56,122 --> 00:10:57,580 is really broad enough in software, 258 00:10:57,580 --> 00:11:01,330 and I'll talk in a minute about what I mean by that. 259 00:11:01,330 --> 00:11:03,580 The other thing is that these people are standardizing 260 00:11:03,580 --> 00:11:05,650 a software base, but not a hardware base, which 261 00:11:05,650 --> 00:11:09,100 means that even a UNIX standard here will not allow us to have 262 00:11:09,100 --> 00:11:10,150 shrink-wrapped software. 263 00:11:10,150 --> 00:11:12,490 So there will still be a competitive disadvantage 264 00:11:12,490 --> 00:11:14,830 for UNIX, relative to OS/2. 265 00:11:14,830 --> 00:11:18,760 So what we've done at Sun is we've constructed one proposed 266 00:11:18,760 --> 00:11:20,950 solution to this problem to try to keep UNIX 267 00:11:20,950 --> 00:11:22,075 going strong into the '90s. 268 00:11:22,075 --> 00:11:24,117 And I'd like to tell you a little bit about that. 269 00:11:24,117 --> 00:11:25,600 You can take this as an example. 270 00:11:25,600 --> 00:11:27,017 This is the kind of thing you have 271 00:11:27,017 --> 00:11:29,780 to do when you're starting with a interesting piece of software 272 00:11:29,780 --> 00:11:31,340 and want to take it to the market 273 00:11:31,340 --> 00:11:33,325 and make it survive long-term. 274 00:11:33,325 --> 00:11:34,700 What we've done, first of all, is 275 00:11:34,700 --> 00:11:36,325 we've been working with AT&T and others 276 00:11:36,325 --> 00:11:38,205 to really consolidate the different versions 277 00:11:38,205 --> 00:11:39,830 of the system around a single standard. 278 00:11:39,830 --> 00:11:42,740 We've been merging 4.2BSD with System V. 279 00:11:42,740 --> 00:11:45,390 We're also trying to meet all the other open system 280 00:11:45,390 --> 00:11:48,500 specifications, like the SVID and POSIX. 281 00:11:48,500 --> 00:11:50,060 But it's very important in all this 282 00:11:50,060 --> 00:11:52,162 that we not only do the UNIX standard stuff, 283 00:11:52,162 --> 00:11:53,870 but add this kind of stuff that customers 284 00:11:53,870 --> 00:11:55,910 and users and universities and other places 285 00:11:55,910 --> 00:11:58,460 really need to do the research and development. 286 00:11:58,460 --> 00:12:01,130 We need a standard graphics and windowing toolkit, 287 00:12:01,130 --> 00:12:04,430 we need networking support, and we need the binary application 288 00:12:04,430 --> 00:12:07,012 standard so we can have software widely available. 289 00:12:07,012 --> 00:12:08,720 Those are technical things we need to do, 290 00:12:08,720 --> 00:12:11,150 but we need to find a business context to do them in. 291 00:12:11,150 --> 00:12:12,800 And the business context we've chosen 292 00:12:12,800 --> 00:12:14,750 is the open systems one, where we 293 00:12:14,750 --> 00:12:17,090 apply the leverage of the free market 294 00:12:17,090 --> 00:12:19,178 to cause standards to emerge. 295 00:12:19,178 --> 00:12:21,470 What we've done is we've developed a RISC architecture. 296 00:12:21,470 --> 00:12:23,330 You've probably heard a lot about RISC, 297 00:12:23,330 --> 00:12:26,360 a very high-performance, very simple machine, 298 00:12:26,360 --> 00:12:28,015 based around the Berkeley RISC system. 299 00:12:28,015 --> 00:12:29,390 And what we've done is we've gone 300 00:12:29,390 --> 00:12:31,400 to a number of different vendors and given them 301 00:12:31,400 --> 00:12:32,990 licenses to implement it, so that we 302 00:12:32,990 --> 00:12:36,230 can provide a range of performances between 10 303 00:12:36,230 --> 00:12:39,290 and 100 MIPS over the next few years. 304 00:12:39,290 --> 00:12:41,030 By this business approach of licensing, 305 00:12:41,030 --> 00:12:43,560 we've gotten access to the best technology. 306 00:12:43,560 --> 00:12:45,535 And so it's a cooperative sort of approach. 307 00:12:45,535 --> 00:12:46,910 And the other thing we've done is 308 00:12:46,910 --> 00:12:49,680 we're selling UNIX in the environment with the chips, 309 00:12:49,680 --> 00:12:52,635 so that, just like you get software from Microsoft, 310 00:12:52,635 --> 00:12:54,260 from Sun, if you're a computer company, 311 00:12:54,260 --> 00:12:57,902 you can get a complete UNIX environment. 312 00:12:57,902 --> 00:12:59,360 So what we've done to date is we've 313 00:12:59,360 --> 00:13:02,510 announced that we've licensed SPARC to Fujitsu, Cyprus 314 00:13:02,510 --> 00:13:05,690 and Bit, three chip companies, which are providing us 315 00:13:05,690 --> 00:13:08,583 with a range of performances from the 10 MIPS range, 316 00:13:08,583 --> 00:13:10,250 which is available today, which is about 317 00:13:10,250 --> 00:13:12,740 equivalent to the top of the VAX minicomputer line, 318 00:13:12,740 --> 00:13:15,950 up to an ECL microprocessor, which should give us 319 00:13:15,950 --> 00:13:19,040 about 50 MIPS of scalar energy performance, which is faster 320 00:13:19,040 --> 00:13:24,140 for most of the interactive applications, say, than a Cray. 321 00:13:24,140 --> 00:13:25,850 We're developing the binary standard 322 00:13:25,850 --> 00:13:28,310 and you'll see some major endorsements of this program 323 00:13:28,310 --> 00:13:29,720 in the fall of '87. 324 00:13:29,720 --> 00:13:34,820 We think that this is the way to achieve a UNIX standard. 325 00:13:34,820 --> 00:13:36,260 Other people may do the same thing 326 00:13:36,260 --> 00:13:37,677 and there may be several of these, 327 00:13:37,677 --> 00:13:40,430 but we think this one has a real chance of letting UNIX 328 00:13:40,430 --> 00:13:44,670 survive into the next decade. 329 00:13:44,670 --> 00:13:47,240 UNIX, to survive, is going to have to coexist. 330 00:13:47,240 --> 00:13:51,170 We expect to link UNIX to OS/2 with windowing and networking, 331 00:13:51,170 --> 00:13:53,600 to run DOS applications by emulation, 332 00:13:53,600 --> 00:13:55,970 to support the full range of IBM SNA protocols 333 00:13:55,970 --> 00:13:58,430 to link to the mainframes, and DEC connections 334 00:13:58,430 --> 00:14:01,190 to link to VAX's and so forth, as well 335 00:14:01,190 --> 00:14:04,910 as the protocols for the Macintosh to link to the Mac 336 00:14:04,910 --> 00:14:09,230 with Appletalk and some graphics links, like with PostScript. 337 00:14:09,230 --> 00:14:12,290 So if this all succeeds, what we would hope would happen 338 00:14:12,290 --> 00:14:15,230 is that UNIX will become a wide and broad-based computer 339 00:14:15,230 --> 00:14:18,830 standard that people who have innovative ideas 340 00:14:18,830 --> 00:14:21,560 can go out and get UNIX and implement their ideas on top 341 00:14:21,560 --> 00:14:24,650 of UNIX, instead of having to implement the whole system 342 00:14:24,650 --> 00:14:25,790 themselves. 343 00:14:25,790 --> 00:14:28,880 This removes a barrier to the flow of creativity 344 00:14:28,880 --> 00:14:30,740 to the marketplace and it's very important. 345 00:14:30,740 --> 00:14:32,660 The open system philosophy is the philosophy 346 00:14:32,660 --> 00:14:33,800 that's causing this. 347 00:14:33,800 --> 00:14:35,840 Licensing of hardware and software 348 00:14:35,840 --> 00:14:37,970 with specs available and published 349 00:14:37,970 --> 00:14:41,510 allows everyone to get in and do creative things. 350 00:14:41,510 --> 00:14:43,190 And we're hoping that SPARC will be 351 00:14:43,190 --> 00:14:47,190 the next major UNIX platform. 352 00:14:47,190 --> 00:14:49,520 So that's where we're taking UNIX. 353 00:14:49,520 --> 00:14:50,772 What about workstations? 354 00:14:50,772 --> 00:14:52,730 You're all probably familiar with workstations, 355 00:14:52,730 --> 00:14:55,160 hopefully you have some. 356 00:14:55,160 --> 00:14:58,250 Workstations have been around now for five years, 357 00:14:58,250 --> 00:15:01,850 and as we saw before, we had these periods of five years, 358 00:15:01,850 --> 00:15:05,600 the five years that we saw Unix on the PDP-11, five major years 359 00:15:05,600 --> 00:15:06,740 on the VAX. 360 00:15:06,740 --> 00:15:10,310 And we think five major years on a machine, which is roughly 361 00:15:10,310 --> 00:15:15,230 characterized as a big Mac with UNIX, a 68,000 with a few MIPS 362 00:15:15,230 --> 00:15:18,410 and raster display. 363 00:15:18,410 --> 00:15:20,930 History would suggest, if things change every five years, 364 00:15:20,930 --> 00:15:23,270 that another transition will occur in '87 365 00:15:23,270 --> 00:15:24,950 and that the preferred CPU and display 366 00:15:24,950 --> 00:15:27,050 technologies should change. 367 00:15:27,050 --> 00:15:30,200 And we would characterize this transition in '87, 368 00:15:30,200 --> 00:15:33,050 much like we saw in '82, the transition from minicomputers 369 00:15:33,050 --> 00:15:35,060 to workstations, as being the transition 370 00:15:35,060 --> 00:15:37,670 to superworkstations, superworkstations 371 00:15:37,670 --> 00:15:40,140 being super in two ways. 372 00:15:40,140 --> 00:15:44,030 One having a supercomputer-like architecture and performance 373 00:15:44,030 --> 00:15:47,240 to get us up to this 100 MIPS on the desktop in the next five 374 00:15:47,240 --> 00:15:48,230 years. 375 00:15:48,230 --> 00:15:52,730 And super in the sense of having a high-quality graphics, what 376 00:15:52,730 --> 00:15:54,438 we call camera-quality graphics. 377 00:15:54,438 --> 00:15:56,480 Graphics which is so high quality that you really 378 00:15:56,480 --> 00:15:59,030 can't tell the difference between a picture 379 00:15:59,030 --> 00:16:01,970 on your screen that was taken with a camera and a picture 380 00:16:01,970 --> 00:16:04,710 that was constructed by the computer. 381 00:16:04,710 --> 00:16:07,370 So if you just turn around and look at any computer 382 00:16:07,370 --> 00:16:09,440 screen in your environment and then look away 383 00:16:09,440 --> 00:16:11,330 from the screen at the rest of the world, 384 00:16:11,330 --> 00:16:13,580 you'll see the difference between the state of the art 385 00:16:13,580 --> 00:16:16,580 today, or whatever you have today, and camera quality. 386 00:16:16,580 --> 00:16:18,145 That's a real challenge. 387 00:16:18,145 --> 00:16:19,520 To meet the performance challenge 388 00:16:19,520 --> 00:16:21,860 of putting 100 MIPS on the desktop, what we've done 389 00:16:21,860 --> 00:16:24,150 is to find a scalable processor architecture, 390 00:16:24,150 --> 00:16:27,840 a full 32-bit machine with normal integer instructions 391 00:16:27,840 --> 00:16:29,020 and floating point. 392 00:16:29,020 --> 00:16:31,840 But some support, especially for high-level languages and AI, 393 00:16:31,840 --> 00:16:33,390 languages like LISP and Smalltalk 394 00:16:33,390 --> 00:16:35,920 are very important for the next generation of software. 395 00:16:35,920 --> 00:16:38,505 And so we leveraged off the Berkeley RISC II 396 00:16:38,505 --> 00:16:40,830 and SOAR work to do this. 397 00:16:40,830 --> 00:16:43,003 We've thereby got an architecture, 398 00:16:43,003 --> 00:16:44,670 which we've looked at the technology for 399 00:16:44,670 --> 00:16:46,890 and believe can be scaled up to 100 MIPS 400 00:16:46,890 --> 00:16:50,340 into technologies like very high-speed CMOS, ECL, 401 00:16:50,340 --> 00:16:54,090 and gallium arsenide over the next few years. 402 00:16:54,090 --> 00:16:57,180 We have a 32-bit data bus, 32-bit address. 403 00:16:57,180 --> 00:16:58,900 Not very many instructions-- of course, 404 00:16:58,900 --> 00:17:01,980 it depends on how you count, but say, 80 or 100 instructions. 405 00:17:01,980 --> 00:17:03,570 One thing that this architecture has 406 00:17:03,570 --> 00:17:04,980 is an awful lot of registers. 407 00:17:04,980 --> 00:17:07,619 If you look at the history of supercomputers, the machines 408 00:17:07,619 --> 00:17:09,630 that Seymour Cray built, you've seen over time 409 00:17:09,630 --> 00:17:11,430 that they've had more and more registers. 410 00:17:11,430 --> 00:17:14,310 So what we did in SPARC is we put register windows, 411 00:17:14,310 --> 00:17:16,530 an awful lot of registers, on the chip 412 00:17:16,530 --> 00:17:19,980 to support fast procedure calls and to support AI language, as 413 00:17:19,980 --> 00:17:20,770 well. 414 00:17:20,770 --> 00:17:22,740 This gives us a lower off-chip data rate. 415 00:17:22,740 --> 00:17:24,270 And these registers, you can think 416 00:17:24,270 --> 00:17:27,315 of as the analog of the vector registers on the Cray. 417 00:17:27,315 --> 00:17:30,690 This is a vector of procedure frames. 418 00:17:30,690 --> 00:17:33,310 We've managed to implement this in a fairly old gate array 419 00:17:33,310 --> 00:17:37,320 technology, running at 16 megahertz, to give us 10 MIPS. 420 00:17:37,320 --> 00:17:38,623 Why is this going to scale? 421 00:17:38,623 --> 00:17:40,665 What we really want to do with this architectures 422 00:17:40,665 --> 00:17:42,623 is we want to put it in the highest performance 423 00:17:42,623 --> 00:17:43,688 technology available. 424 00:17:43,688 --> 00:17:46,230 We believe it'll scale because it's very simple, that there's 425 00:17:46,230 --> 00:17:48,120 only 50,000 transistors. 426 00:17:48,120 --> 00:17:51,330 We've left off a lot of stuff so that we could reimplement it 427 00:17:51,330 --> 00:17:52,890 in hot stuff quickly. 428 00:17:52,890 --> 00:17:54,300 It leverages static RAMs. 429 00:17:54,300 --> 00:17:56,820 It uses off-the-shelf RAMs and float units 430 00:17:56,820 --> 00:17:59,220 that generally already exist in a technology, 431 00:17:59,220 --> 00:18:03,580 before anyone builds a processor, to run. 432 00:18:03,580 --> 00:18:06,750 We've tried to translate the Cray philosophy onto a chip. 433 00:18:06,750 --> 00:18:09,010 Cray machines tend to be very simple. 434 00:18:09,010 --> 00:18:11,220 They tend to be very clever in their implementation 435 00:18:11,220 --> 00:18:14,370 to get the speed, having lots of registers, large local 436 00:18:14,370 --> 00:18:17,850 memories, like a large cache, or in this chip, 437 00:18:17,850 --> 00:18:21,990 is the intellectual equivalent of the large local store 438 00:18:21,990 --> 00:18:24,180 on the Cray-2 or the Cray-3. 439 00:18:24,180 --> 00:18:26,160 The machine is highly pipelined. 440 00:18:26,160 --> 00:18:29,700 Three or four-stage pipelines are required to implement it. 441 00:18:29,700 --> 00:18:32,250 And the kind of support we've put in for high-level languages 442 00:18:32,250 --> 00:18:36,430 in the system corresponds to the kinds of support Cray 443 00:18:36,430 --> 00:18:39,760 puts in for Vector Floating-Point. 444 00:18:39,760 --> 00:18:42,120 So what we expect to get out of this architecture 445 00:18:42,120 --> 00:18:44,790 is a rough doubling of the performance every year, 446 00:18:44,790 --> 00:18:46,510 continuing the curve you see here, 447 00:18:46,510 --> 00:18:48,080 which shows how Suns have roughly 448 00:18:48,080 --> 00:18:49,830 doubled in performance every year since we 449 00:18:49,830 --> 00:18:51,810 started the company in 1982. 450 00:18:51,810 --> 00:18:55,200 Our goal is to exceed eight MIPS in '87, 16 MIPS in '88, 451 00:18:55,200 --> 00:18:58,860 32 MIPS in '89, and 64 MIPS in 1990 452 00:18:58,860 --> 00:19:01,710 with microprocessor-based systems. 453 00:19:01,710 --> 00:19:04,140 We expect to be able to double the performance repeatedly 454 00:19:04,140 --> 00:19:07,590 because of the business leverage from open systems getting 455 00:19:07,590 --> 00:19:09,927 us access to the best technology and because 456 00:19:09,927 --> 00:19:11,010 of the technical leverage. 457 00:19:11,010 --> 00:19:14,040 A very simple machine allows us to go in and use cleverness 458 00:19:14,040 --> 00:19:16,230 to implement better pipelines, to continue 459 00:19:16,230 --> 00:19:18,977 to work on the compilers and instructions scheduling, 460 00:19:18,977 --> 00:19:21,060 and to take advantage, over time, of the extremely 461 00:19:21,060 --> 00:19:23,730 large number of registers and other facilities 462 00:19:23,730 --> 00:19:27,873 that are in the architecture for performance. 463 00:19:27,873 --> 00:19:29,790 There are an awful lot of good ideas out there 464 00:19:29,790 --> 00:19:32,070 that haven't been implemented yet in microprocessors. 465 00:19:32,070 --> 00:19:34,980 There are ideas involving long instruction words. 466 00:19:34,980 --> 00:19:37,740 Instead of a 32-bit wide RISC instruction, 467 00:19:37,740 --> 00:19:42,160 you might have 100 or 500-bit wide RISC long instruction. 468 00:19:42,160 --> 00:19:45,660 You see this in machines like the Multiflower Computer. 469 00:19:45,660 --> 00:19:50,820 Vector Floating-Point, parallel organization, all these things 470 00:19:50,820 --> 00:19:53,430 can increase the performance. 471 00:19:53,430 --> 00:19:57,480 There are also new technologies to apply to microprocessors, 472 00:19:57,480 --> 00:20:00,630 including, as I said, an ECL microprocessor, perhaps 473 00:20:00,630 --> 00:20:04,500 a gallium arsenide micro, ballistical, optical, whatever 474 00:20:04,500 --> 00:20:06,102 new technology comes along. 475 00:20:06,102 --> 00:20:08,310 We've tried to design SPARC so that it's the simplest 476 00:20:08,310 --> 00:20:11,910 microprocessor around, so that the first microprocessor 477 00:20:11,910 --> 00:20:14,700 in each of these technologies has a chance of being SPARC. 478 00:20:14,700 --> 00:20:18,060 479 00:20:18,060 --> 00:20:20,550 So that concludes my remarks about processing, 480 00:20:20,550 --> 00:20:22,650 why we think we'll get to 100 MIPS on the desktop 481 00:20:22,650 --> 00:20:24,460 in the next few years. 482 00:20:24,460 --> 00:20:26,790 Let's talk now about graphics. 483 00:20:26,790 --> 00:20:28,288 Quality graphics is very important 484 00:20:28,288 --> 00:20:30,330 and our goal is to have the quality of the screen 485 00:20:30,330 --> 00:20:32,122 be as good as the quality of the real world 486 00:20:32,122 --> 00:20:34,080 when you look out there. 487 00:20:34,080 --> 00:20:37,320 For the last five years, we've been doing bitmap graphics, 488 00:20:37,320 --> 00:20:39,180 whacking bits on and off on the display. 489 00:20:39,180 --> 00:20:42,660 What we're seeing this year is a transition 490 00:20:42,660 --> 00:20:44,910 from that bit-level model to what we 491 00:20:44,910 --> 00:20:46,500 would call an imaging model. 492 00:20:46,500 --> 00:20:48,603 The big transition here is that ASCII, 493 00:20:48,603 --> 00:20:50,520 which was the old way of describing stuff that 494 00:20:50,520 --> 00:20:53,340 go to the display, is being replaced by language called 495 00:20:53,340 --> 00:20:56,850 PostScript, which describes printed documents very 496 00:20:56,850 --> 00:20:59,310 nicely in a very resolution-independent way. 497 00:20:59,310 --> 00:21:01,380 It describes things in real-world terms, 498 00:21:01,380 --> 00:21:03,840 as opposed to the bit-oriented way 499 00:21:03,840 --> 00:21:05,587 we've been describing things in the past. 500 00:21:05,587 --> 00:21:07,170 The other transition that we're seeing 501 00:21:07,170 --> 00:21:09,360 is a transition from doing graphics 502 00:21:09,360 --> 00:21:12,480 in terms of vectors and polygons to being 503 00:21:12,480 --> 00:21:15,630 able to do graphics in terms of curves and surfaces. 504 00:21:15,630 --> 00:21:17,580 Technology to do this has been described 505 00:21:17,580 --> 00:21:19,710 at, say, the last SIGGRAPH and we're 506 00:21:19,710 --> 00:21:24,650 seeing PostScript sweep the industry in the printing space. 507 00:21:24,650 --> 00:21:29,250 Now what PostScript and what high-quality, say, 508 00:21:29,250 --> 00:21:31,230 Phong shaded curves and surfaces give us 509 00:21:31,230 --> 00:21:33,060 are high-quality local shading. 510 00:21:33,060 --> 00:21:35,250 This allows us to deal with an object at a time 511 00:21:35,250 --> 00:21:37,320 and to cut and paste them together. 512 00:21:37,320 --> 00:21:38,790 What it doesn't allow us to do is 513 00:21:38,790 --> 00:21:41,160 to really model all the properties that photons have. 514 00:21:41,160 --> 00:21:43,140 Light bouncing around the room, bouncing off 515 00:21:43,140 --> 00:21:46,890 reflective surfaces, mirrors, glass, going through fog, 516 00:21:46,890 --> 00:21:48,300 providing diffuse lighting. 517 00:21:48,300 --> 00:21:49,770 All the very complicated things you 518 00:21:49,770 --> 00:21:53,100 need to do to do sophisticated movie animation 519 00:21:53,100 --> 00:21:55,500 and to really simulate the real world so the screen looks 520 00:21:55,500 --> 00:21:57,540 like the real world does. 521 00:21:57,540 --> 00:21:59,940 Supporting real-world quality is a clear goal 522 00:21:59,940 --> 00:22:01,725 for a computing device. 523 00:22:01,725 --> 00:22:03,600 We'd like to do at least as good as Lucasfilm 524 00:22:03,600 --> 00:22:05,670 does in their wonderful movies they 525 00:22:05,670 --> 00:22:07,890 make every year for SIGGRAPH. 526 00:22:07,890 --> 00:22:10,533 The transition to be able to do this kind of thing 527 00:22:10,533 --> 00:22:12,450 on the workstation is going to take a few more 528 00:22:12,450 --> 00:22:16,660 years, because it involves such massive computing requirements. 529 00:22:16,660 --> 00:22:19,320 In fact, if you look at the rough computing requirements 530 00:22:19,320 --> 00:22:22,350 to prepare a display, looking back to '79, when 531 00:22:22,350 --> 00:22:25,080 we had ASCII printers, a fraction of a MIPS, say, 532 00:22:25,080 --> 00:22:27,960 a fraction of a VAX, and no floating point operation 533 00:22:27,960 --> 00:22:30,450 could really put the characters up on the display. 534 00:22:30,450 --> 00:22:33,720 By '82, when some of us had Macintoshes or Suns 535 00:22:33,720 --> 00:22:37,740 or equivalent machines, a one-bit machine 536 00:22:37,740 --> 00:22:40,500 could put up a bitmap raster and let us pull menus around 537 00:22:40,500 --> 00:22:42,690 on the screen and draw lines. 538 00:22:42,690 --> 00:22:46,110 To do engineering graphics, you need something a little more 539 00:22:46,110 --> 00:22:49,320 powerful than a one-bit machine, perhaps something like an IRIS 540 00:22:49,320 --> 00:22:50,790 from Silicon Graphics. 541 00:22:50,790 --> 00:22:53,010 We have roughly 10 MIPS and a few megaflops 542 00:22:53,010 --> 00:22:55,260 devoted to doing transforms in preparation 543 00:22:55,260 --> 00:22:59,130 of the real-world coordinates of the graphics information. 544 00:22:59,130 --> 00:23:01,680 Now in order for us to get higher quality, 545 00:23:01,680 --> 00:23:03,600 what we'd like to do is to use curves instead 546 00:23:03,600 --> 00:23:06,990 of lines and curved surfaces, rather than polygons, 547 00:23:06,990 --> 00:23:10,740 to just dramatically improve the local shading 548 00:23:10,740 --> 00:23:11,860 quality of the image. 549 00:23:11,860 --> 00:23:13,360 The difficulty with this, of course, 550 00:23:13,360 --> 00:23:17,000 is that it involves about a factor of 25 to 100 551 00:23:17,000 --> 00:23:19,260 more computing. 552 00:23:19,260 --> 00:23:21,675 And doing curves and Phong shaded solids 553 00:23:21,675 --> 00:23:24,300 is something that we think will be state of the art in the '88, 554 00:23:24,300 --> 00:23:27,060 but is probably beyond the state of the art today. 555 00:23:27,060 --> 00:23:29,820 To get to the kind of global shaded environment 556 00:23:29,820 --> 00:23:32,610 that I'm talking about, to do that in roughly real time, 557 00:23:32,610 --> 00:23:36,420 needs about a factor of 500 more computing, about, perhaps, half 558 00:23:36,420 --> 00:23:41,250 a million MIPS to render a Lucasfilm type 559 00:23:41,250 --> 00:23:42,240 movie in real time. 560 00:23:42,240 --> 00:23:44,670 So we're clearly have a long way to go. 561 00:23:44,670 --> 00:23:46,457 Even doubling the performance every year, 562 00:23:46,457 --> 00:23:48,540 it's going to take almost an arbitrarily long time 563 00:23:48,540 --> 00:23:50,730 to get to 500,000 MIPS. 564 00:23:50,730 --> 00:23:54,450 So to do global shading and real camera-quality graphics, 565 00:23:54,450 --> 00:23:57,925 we're going to need massive parallelism. 566 00:23:57,925 --> 00:23:59,550 If we have a super workstation, there's 567 00:23:59,550 --> 00:24:00,850 some potential problems. 568 00:24:00,850 --> 00:24:04,317 The first being that the I/O can be a real bottleneck. 569 00:24:04,317 --> 00:24:05,900 You can imagine that this is not going 570 00:24:05,900 --> 00:24:08,130 to spin all that much faster, and yet the machine 571 00:24:08,130 --> 00:24:10,270 may be 10 or 100 times faster. 572 00:24:10,270 --> 00:24:12,300 So the real answer here is to use caching, 573 00:24:12,300 --> 00:24:14,460 to keep a lot more stuff in main memory, 574 00:24:14,460 --> 00:24:16,950 and in fact, to put a battery in so that some of the memory 575 00:24:16,950 --> 00:24:17,742 can be nonvolatile. 576 00:24:17,742 --> 00:24:20,940 It can be basically a stable RAM disc. 577 00:24:20,940 --> 00:24:22,830 Higher-level language has become possible 578 00:24:22,830 --> 00:24:26,220 with this super workstations and that's real important, 579 00:24:26,220 --> 00:24:27,780 because what we want to do here is 580 00:24:27,780 --> 00:24:29,557 to use the MIPS to make the code smaller. 581 00:24:29,557 --> 00:24:31,140 We don't want to make the code smaller 582 00:24:31,140 --> 00:24:33,270 by putting in a complicated instruction set, 583 00:24:33,270 --> 00:24:35,730 we want to make the code smaller by using 584 00:24:35,730 --> 00:24:37,320 a higher-level programming language so 585 00:24:37,320 --> 00:24:39,150 that smaller groups of programmers 586 00:24:39,150 --> 00:24:42,360 can do interesting things. 587 00:24:42,360 --> 00:24:43,830 The stress in all this, we think, 588 00:24:43,830 --> 00:24:46,110 will be on applications environments. 589 00:24:46,110 --> 00:24:48,870 Programming environments that are complete and interactive, 590 00:24:48,870 --> 00:24:52,320 like a Smalltalk environment or a symbolic LISP environment 591 00:24:52,320 --> 00:24:55,800 or an ALGO-like environment, like the Cedar environment that 592 00:24:55,800 --> 00:24:57,510 was developed at Xerox PARC. 593 00:24:57,510 --> 00:25:00,270 And we think stress on object-oriented programs 594 00:25:00,270 --> 00:25:04,560 to make code reusable is also very important. 595 00:25:04,560 --> 00:25:09,330 OK, so we've seen how the open system strategy can give us 596 00:25:09,330 --> 00:25:12,265 leverage in an environment where technology is changing rapidly. 597 00:25:12,265 --> 00:25:13,890 Hopefully, you're convinced that that's 598 00:25:13,890 --> 00:25:16,010 a good strategy for the future and it 599 00:25:16,010 --> 00:25:19,470 may help you to bring some of your ideas to the market. 600 00:25:19,470 --> 00:25:21,842 We've also seen how UNIX is evolving 601 00:25:21,842 --> 00:25:24,050 and how a UNIX standard might emerge that would allow 602 00:25:24,050 --> 00:25:26,770 UNIX to survive into the '90s. 603 00:25:26,770 --> 00:25:28,520 And we've talked a little bit about what's 604 00:25:28,520 --> 00:25:30,620 next in workstations. 605 00:25:30,620 --> 00:25:32,820 These are all relatively short-term things. 606 00:25:32,820 --> 00:25:34,400 What I'd like to do now is to talk 607 00:25:34,400 --> 00:25:38,340 about a longer view of where things are going over the next, 608 00:25:38,340 --> 00:25:41,240 say, 15 years. 609 00:25:41,240 --> 00:25:43,700 I'd like, in particular, to speculate 610 00:25:43,700 --> 00:25:48,830 on UNIX, where Unix is going, where user interfaces are 611 00:25:48,830 --> 00:25:52,550 going, where processor architecture is going, 612 00:25:52,550 --> 00:25:56,390 and where hardware in general is going, the technology. 613 00:25:56,390 --> 00:26:00,973 Because these are major components of the workstation. 614 00:26:00,973 --> 00:26:03,140 I'd like to try to speculate what a workstation will 615 00:26:03,140 --> 00:26:06,020 be like in the year 2001. 616 00:26:06,020 --> 00:26:07,910 This is, of course, dangerous. 617 00:26:07,910 --> 00:26:10,220 History has shown that people generally 618 00:26:10,220 --> 00:26:11,720 underestimate what is possible. 619 00:26:11,720 --> 00:26:13,370 I'll try to be an optimist. 620 00:26:13,370 --> 00:26:16,970 I'm an optimist at heart, so maybe overestimate, perhaps. 621 00:26:16,970 --> 00:26:22,020 But let's look at UNIX as it is today. 622 00:26:22,020 --> 00:26:23,490 There's some real problems. 623 00:26:23,490 --> 00:26:26,070 One problem with UNIX is that the C language is essentially 624 00:26:26,070 --> 00:26:26,570 wearing out. 625 00:26:26,570 --> 00:26:28,610 It's all written in C. C doesn't support 626 00:26:28,610 --> 00:26:30,770 the structuring for large programs, 627 00:26:30,770 --> 00:26:35,750 C doesn't support abstract data types very well, 628 00:26:35,750 --> 00:26:39,560 it doesn't support parallel processing. 629 00:26:39,560 --> 00:26:42,590 We have to address these things in the large UNIX programs, 630 00:26:42,590 --> 00:26:44,210 in particular the UNIX kernel. 631 00:26:44,210 --> 00:26:48,260 We have to also address the needs of the next 15 years 632 00:26:48,260 --> 00:26:50,570 in having more ways of linking programs together. 633 00:26:50,570 --> 00:26:52,130 We want to be able to make what looks 634 00:26:52,130 --> 00:26:55,700 like a single program that runs on a bunch of processors 635 00:26:55,700 --> 00:26:57,440 working together, whether they're 636 00:26:57,440 --> 00:27:01,970 thought of as a multiprocessor or a distributed program. 637 00:27:01,970 --> 00:27:05,650 By evolving UNIX, we have to solve the problems 638 00:27:05,650 --> 00:27:07,430 with the lack of modularity of the code 639 00:27:07,430 --> 00:27:11,210 and really make it possible to run the kind of multi-processes 640 00:27:11,210 --> 00:27:13,530 we're going to see in just a few years. 641 00:27:13,530 --> 00:27:17,060 So our hypothesis is that we'll see UNIX rewritten 642 00:27:17,060 --> 00:27:20,190 in a language called C++ in the next few years. 643 00:27:20,190 --> 00:27:23,750 And that the language will support concurrency in that 644 00:27:23,750 --> 00:27:28,070 basically, concurrent C++ will become the language that really 645 00:27:28,070 --> 00:27:32,330 defines UNIX, much like C defined UNIX in the beginning. 646 00:27:32,330 --> 00:27:35,390 We expect to see an evolution of UNIX 647 00:27:35,390 --> 00:27:38,660 to a system that supports very powerful programs running 648 00:27:38,660 --> 00:27:39,650 in user mode. 649 00:27:39,650 --> 00:27:41,960 The typical UNIX applications program 650 00:27:41,960 --> 00:27:45,140 would then be concurrent, it would have dynamic linkages 651 00:27:45,140 --> 00:27:48,680 to other programs in the network and to the kernel 652 00:27:48,680 --> 00:27:51,458 and other resources, and all the facilities 653 00:27:51,458 --> 00:27:53,750 that we've thought of as being part of UNIX kernel mode 654 00:27:53,750 --> 00:27:55,583 would then be available to the applications. 655 00:27:55,583 --> 00:27:58,400 The applications environment would be basically a runtime 656 00:27:58,400 --> 00:28:01,400 for the concurrent C++ language. 657 00:28:01,400 --> 00:28:03,530 One of the reasons why the UNIX kernel is so large 658 00:28:03,530 --> 00:28:06,530 and unstructured today is that the extent 659 00:28:06,530 --> 00:28:08,360 of the language you see for C in the kernel 660 00:28:08,360 --> 00:28:10,440 is much more powerful than in user mode. 661 00:28:10,440 --> 00:28:12,440 And so there are things you can do in the kernel 662 00:28:12,440 --> 00:28:14,270 but can't easily do in a UNIX application. 663 00:28:14,270 --> 00:28:19,070 C++ and its concurrent extensions should remedy this 664 00:28:19,070 --> 00:28:20,310 situation. 665 00:28:20,310 --> 00:28:22,820 The other thing we really need with C++ is we need 666 00:28:22,820 --> 00:28:25,610 an integrated programming environment a lot of the things 667 00:28:25,610 --> 00:28:29,630 we see for LISP or Smalltalk or with ALGO-like languages, 668 00:28:29,630 --> 00:28:31,220 Cedar Mesa. 669 00:28:31,220 --> 00:28:32,810 We need an incremental environment 670 00:28:32,810 --> 00:28:35,990 and an interpretive, interactive environment. 671 00:28:35,990 --> 00:28:39,800 We think this will be available in the next few years. 672 00:28:39,800 --> 00:28:42,320 In the user interface area, we've 673 00:28:42,320 --> 00:28:44,810 noted the problem that UNIX has no look and feel. 674 00:28:44,810 --> 00:28:47,240 But beyond that, the state of the art today 675 00:28:47,240 --> 00:28:48,740 basically being a bitmap display, 676 00:28:48,740 --> 00:28:52,100 a keyboard and a mouse, really isn't 677 00:28:52,100 --> 00:28:53,930 the interface of the future. 678 00:28:53,930 --> 00:28:58,190 We believe that voice input is the natural complement to 679 00:28:58,190 --> 00:28:59,900 high-quality graphics output. 680 00:28:59,900 --> 00:29:02,210 Your voice is your highest bandwidth output device, 681 00:29:02,210 --> 00:29:05,120 just as your eyes are you highest bandwidth input device. 682 00:29:05,120 --> 00:29:10,070 So voice I/O with graphics is really the way to go. 683 00:29:10,070 --> 00:29:12,530 Gesturing user interface allows you to wave your hands 684 00:29:12,530 --> 00:29:15,440 and for the computer to see your body motions and perhaps 685 00:29:15,440 --> 00:29:16,610 your mood. 686 00:29:16,610 --> 00:29:18,060 All sorts of things are possible. 687 00:29:18,060 --> 00:29:19,940 And people have begun to experiment 688 00:29:19,940 --> 00:29:21,830 with gesturing user interfaces. 689 00:29:21,830 --> 00:29:25,310 We think those will happen in the next 15 years. 690 00:29:25,310 --> 00:29:28,490 Many people are working on the technology for 3D displays. 691 00:29:28,490 --> 00:29:30,170 It's very natural for the display 692 00:29:30,170 --> 00:29:31,795 to be three-dimensional, although there 693 00:29:31,795 --> 00:29:33,830 are severe technical problems. 694 00:29:33,830 --> 00:29:35,270 Take, for example, the application 695 00:29:35,270 --> 00:29:36,320 of air traffic control. 696 00:29:36,320 --> 00:29:38,695 It sure would be nice if the air traffic controllers were 697 00:29:38,695 --> 00:29:40,730 standing over a scene that looked, perhaps, 698 00:29:40,730 --> 00:29:42,230 like Star Wars, where they could see 699 00:29:42,230 --> 00:29:44,272 the little planes as lighted things in free space 700 00:29:44,272 --> 00:29:46,938 so they could see that they were going to crash into each other. 701 00:29:46,938 --> 00:29:49,070 Your mind is pretty good at telling whether things 702 00:29:49,070 --> 00:29:53,120 are going to collide by looking at a three-dimensional picture. 703 00:29:53,120 --> 00:29:56,685 In fact, an animated display is something 704 00:29:56,685 --> 00:29:59,060 we would expect to be a routine part of even the simplest 705 00:29:59,060 --> 00:30:01,215 applications program in 15 years, 706 00:30:01,215 --> 00:30:03,090 perhaps written by kids in elementary school. 707 00:30:03,090 --> 00:30:05,150 They'll have animation languages that they 708 00:30:05,150 --> 00:30:07,982 can program in, perhaps describing things 709 00:30:07,982 --> 00:30:08,690 with their voice. 710 00:30:08,690 --> 00:30:11,280 711 00:30:11,280 --> 00:30:14,070 So what we expect to happen to UNIX over the next few years is 712 00:30:14,070 --> 00:30:15,695 we're going to solve the first problem, 713 00:30:15,695 --> 00:30:19,370 the problem of look and feel, by having UNIX adopt 714 00:30:19,370 --> 00:30:20,750 one of the PC look and feels. 715 00:30:20,750 --> 00:30:23,000 Basically, UNIX will either look like OS/2 716 00:30:23,000 --> 00:30:24,470 or it will look like the Macintosh 717 00:30:24,470 --> 00:30:26,390 or look like both, because those are 718 00:30:26,390 --> 00:30:30,620 things that the mass market teaches people how to use. 719 00:30:30,620 --> 00:30:34,042 And the real goal of the UNIX community 720 00:30:34,042 --> 00:30:35,750 is going to be to produce a new wave look 721 00:30:35,750 --> 00:30:38,090 and feel, one that can be driven with a voice 722 00:30:38,090 --> 00:30:41,990 in a hands-free sort of way, uses inferencing and a database 723 00:30:41,990 --> 00:30:45,140 to really provide a next-generation user interface. 724 00:30:45,140 --> 00:30:49,340 And companies like Sun and NeXT and other advanced UNIX vendors 725 00:30:49,340 --> 00:30:51,710 are beginning to work on these areas, a new media 726 00:30:51,710 --> 00:30:52,700 interface for UNIX. 727 00:30:52,700 --> 00:30:56,320 728 00:30:56,320 --> 00:31:00,730 The next problem we could look at over a period of time, 729 00:31:00,730 --> 00:31:05,050 over the next 15 years, is that the RISC architectural idea 730 00:31:05,050 --> 00:31:08,230 will probably wear out. 731 00:31:08,230 --> 00:31:10,515 RISC may run out of gas, say, in five years. 732 00:31:10,515 --> 00:31:12,640 I mean, that's what history would suggest, roughly, 733 00:31:12,640 --> 00:31:15,130 in 1992 that there's an opportunity 734 00:31:15,130 --> 00:31:17,020 for an architectural evolution. 735 00:31:17,020 --> 00:31:18,885 Now we could imagine that it was parallelism 736 00:31:18,885 --> 00:31:21,302 and that we're just going to put in a lot of parallel RISC 737 00:31:21,302 --> 00:31:21,850 machines. 738 00:31:21,850 --> 00:31:23,517 But in fact, parallelism is hard to deal 739 00:31:23,517 --> 00:31:25,630 with across a broad range of programs. 740 00:31:25,630 --> 00:31:27,850 Existing programs are written in low-level languages. 741 00:31:27,850 --> 00:31:30,160 They're written in C and FORTRAN and Pascal. 742 00:31:30,160 --> 00:31:32,590 And the fact that the programming is fairly 743 00:31:32,590 --> 00:31:34,720 sequential is very apparent. 744 00:31:34,720 --> 00:31:37,960 There is not language mechanisms to automatically 745 00:31:37,960 --> 00:31:41,660 insert semaphores very easily in most of these languages. 746 00:31:41,660 --> 00:31:43,600 So it's hard to make them run, in general, 747 00:31:43,600 --> 00:31:46,600 on a multiprocessor. 748 00:31:46,600 --> 00:31:50,240 So what we would expect to have happen is two things. 749 00:31:50,240 --> 00:31:55,240 First of all, for getting a single program counter 750 00:31:55,240 --> 00:31:59,030 machine, a non-parallel machine, from a programming standpoint, 751 00:31:59,030 --> 00:32:01,240 we would expect to see the long instruction word 752 00:32:01,240 --> 00:32:03,340 idea become much more dominant. 753 00:32:03,340 --> 00:32:05,470 We can expect that microprocessors based 754 00:32:05,470 --> 00:32:07,420 on RISC with hundreds of bits for instruction 755 00:32:07,420 --> 00:32:11,620 will be possible and people will write sophisticated compilers 756 00:32:11,620 --> 00:32:14,020 to schedule the hardware and the programmers 757 00:32:14,020 --> 00:32:16,180 won't have to think about the parallelism. 758 00:32:16,180 --> 00:32:17,770 Fine-grained parallelism. 759 00:32:17,770 --> 00:32:19,120 Parallelism without thought. 760 00:32:19,120 --> 00:32:23,620 This is being done today on a graphics accelerator 761 00:32:23,620 --> 00:32:27,820 that Sun has called a TAAC-1 and also on the mini supercomputers 762 00:32:27,820 --> 00:32:29,470 built by Multiflow. 763 00:32:29,470 --> 00:32:32,050 But this is really just, evolutionarily, 764 00:32:32,050 --> 00:32:34,330 to really make a revolution in processing, 765 00:32:34,330 --> 00:32:37,450 what we're going to need to do is to use massive parallelism. 766 00:32:37,450 --> 00:32:39,723 Tens, hundreds, or thousands of processors. 767 00:32:39,723 --> 00:32:41,140 We think the right way to approach 768 00:32:41,140 --> 00:32:45,160 this is by using new languages, because applications 769 00:32:45,160 --> 00:32:48,250 that are written in a way that parallelism is inherent 770 00:32:48,250 --> 00:32:52,940 are much going to be much easier to compile for these machines. 771 00:32:52,940 --> 00:32:56,200 So in particular, Sun, which is mostly 772 00:32:56,200 --> 00:32:58,450 interested in powerful machines on the desktop, 773 00:32:58,450 --> 00:33:01,730 sees parallelism coming to the desktop in three waves. 774 00:33:01,730 --> 00:33:04,780 The first wave would be to solve the graphics problem. 775 00:33:04,780 --> 00:33:07,690 To do the massive computing necessary to make 776 00:33:07,690 --> 00:33:10,660 global shading possible interactively. 777 00:33:10,660 --> 00:33:13,870 The second area would be in accelerating 778 00:33:13,870 --> 00:33:15,460 specific applications. 779 00:33:15,460 --> 00:33:18,760 For example, we might see a massively parallel machine 780 00:33:18,760 --> 00:33:21,550 which can be used to simulate a neural network. 781 00:33:21,550 --> 00:33:23,140 Such a machine could then be used 782 00:33:23,140 --> 00:33:27,408 to program a simulation of, say, a part of the brain that 783 00:33:27,408 --> 00:33:29,200 could do some interesting kind of computing 784 00:33:29,200 --> 00:33:31,810 that we don't know how to do with the von Neumann machine. 785 00:33:31,810 --> 00:33:35,110 But we think that having a massively parallel machine 786 00:33:35,110 --> 00:33:37,220 is a central device in the machine. 787 00:33:37,220 --> 00:33:39,490 The desktop is going to take a long time, 788 00:33:39,490 --> 00:33:41,915 because it'll involve rewriting all of our applications. 789 00:33:41,915 --> 00:33:43,790 That'll probably be the last thing to happen. 790 00:33:43,790 --> 00:33:46,595 791 00:33:46,595 --> 00:33:48,220 Now let's talk a little bit about where 792 00:33:48,220 --> 00:33:49,860 hardware technology is going. 793 00:33:49,860 --> 00:33:53,470 We've all heard a lot about room temperature superconductors. 794 00:33:53,470 --> 00:33:56,740 And I would expect that, certainly by the year 2001, 795 00:33:56,740 --> 00:33:59,500 we'll see people being able to fabricate 796 00:33:59,500 --> 00:34:02,320 Josephson junction-like superconductors, which 797 00:34:02,320 --> 00:34:05,170 run at room temperature with some micron geometries. 798 00:34:05,170 --> 00:34:07,210 Today, we're a little bit in the situation 799 00:34:07,210 --> 00:34:09,340 like we were early in the century or the turn 800 00:34:09,340 --> 00:34:12,340 of the last century, when Edison was trying to find 801 00:34:12,340 --> 00:34:14,050 a filament for a light bulb. 802 00:34:14,050 --> 00:34:16,360 He'd stick any random thing in and test it 803 00:34:16,360 --> 00:34:17,290 and see what happened. 804 00:34:17,290 --> 00:34:19,748 So the people today who are trying to make room temperature 805 00:34:19,748 --> 00:34:22,360 superconductors mess around, fabricate something, 806 00:34:22,360 --> 00:34:24,040 it works for a while, and then burns up. 807 00:34:24,040 --> 00:34:25,332 Doesn't superconductor anymore. 808 00:34:25,332 --> 00:34:27,190 And nobody really understands why. 809 00:34:27,190 --> 00:34:30,340 But over the next 15 years, applying the powerful computers 810 00:34:30,340 --> 00:34:32,409 we have today, we should get a good understanding 811 00:34:32,409 --> 00:34:33,550 of the science. 812 00:34:33,550 --> 00:34:37,030 And it's clear from what we know about, say, liquid nitrogen 813 00:34:37,030 --> 00:34:39,280 or liquid helium temperature superconductors, 814 00:34:39,280 --> 00:34:42,760 that gate delays which are less than a picosecond 815 00:34:42,760 --> 00:34:44,080 are quite possible. 816 00:34:44,080 --> 00:34:48,159 In fact, we can imagine gate delays down to 1/10 or 1/20 817 00:34:48,159 --> 00:34:49,540 of a picosecond. 818 00:34:49,540 --> 00:34:54,058 If we can build a machine with such a gate delay, 819 00:34:54,058 --> 00:34:55,600 then a cycle time with such a machine 820 00:34:55,600 --> 00:34:58,090 might be on the order of 10 picoseconds, which 821 00:34:58,090 --> 00:35:01,330 means a collection of 1 to 10 of these processors 822 00:35:01,330 --> 00:35:05,180 could have a MIPS rating in the 100,000 to 1 million range. 823 00:35:05,180 --> 00:35:07,930 So we might be able to build a small collection of micros 824 00:35:07,930 --> 00:35:12,080 for your desktop in 2001 that was, say, 100,000 times the VAX 825 00:35:12,080 --> 00:35:12,580 easily. 826 00:35:12,580 --> 00:35:15,320 That might be the entry-level system. 827 00:35:15,320 --> 00:35:19,210 So let's imagine what we would call a Sun-9, the 2001 828 00:35:19,210 --> 00:35:23,140 workstation from Sun with one one-micron superconducting 829 00:35:23,140 --> 00:35:26,020 microprocessor with a 10 picosecond cycle time. 830 00:35:26,020 --> 00:35:27,643 And then what kind of memory would you 831 00:35:27,643 --> 00:35:28,810 provide with such a machine? 832 00:35:28,810 --> 00:35:30,588 Well, we could put in 1,000 RAMS. 833 00:35:30,588 --> 00:35:32,380 And if you look at the RAM evolution curve, 834 00:35:32,380 --> 00:35:34,960 we might get to a gigabit RAM in that timeframe. 835 00:35:34,960 --> 00:35:39,880 So 1,000 gigabit RAMS gives us about 128 gigabytes of memory. 836 00:35:39,880 --> 00:35:42,320 Those are both very large numbers. 837 00:35:42,320 --> 00:35:45,580 And for resolution of the display, 838 00:35:45,580 --> 00:35:47,320 we can just imagine that we max out 839 00:35:47,320 --> 00:35:48,820 at the resolution of your eye, which 840 00:35:48,820 --> 00:35:51,160 is fairly small by comparison to these other numbers, 841 00:35:51,160 --> 00:35:53,900 it's only about 30,000 megabits per second. 842 00:35:53,900 --> 00:35:56,590 So people have to talked about the 3M machine, the one 843 00:35:56,590 --> 00:36:01,120 MIP, one megabyte, one million pixel, one megabit display. 844 00:36:01,120 --> 00:36:02,710 The 111 machine. 845 00:36:02,710 --> 00:36:08,980 This is 100,000, 30,000 machine. 846 00:36:08,980 --> 00:36:11,410 It's almost 100,000 times as powerful, 847 00:36:11,410 --> 00:36:13,340 and it's only 15 years from now. 848 00:36:13,340 --> 00:36:16,800 So clearly, that's going to make an enormous difference. 849 00:36:16,800 --> 00:36:18,550 In fact, it's hard to get a handle on what 850 00:36:18,550 --> 00:36:19,990 effect of 100,000 will do. 851 00:36:19,990 --> 00:36:22,820 We can look at some things like how many seconds are there 852 00:36:22,820 --> 00:36:23,320 in a day? 853 00:36:23,320 --> 00:36:25,990 Well, that turns out to be about a factor of 100,000. 854 00:36:25,990 --> 00:36:28,780 So then, a computation that used to take a day on our VAX 855 00:36:28,780 --> 00:36:30,912 would run in one second on this machine. 856 00:36:30,912 --> 00:36:33,370 In fact, anything we could have done in an hour on our VAX, 857 00:36:33,370 --> 00:36:34,930 we can make an interactive movie of, 858 00:36:34,930 --> 00:36:37,180 because we could produce 30 frames a second 859 00:36:37,180 --> 00:36:39,250 are the results of that computation. 860 00:36:39,250 --> 00:36:42,190 Since a year is about 500,000 minutes, 861 00:36:42,190 --> 00:36:44,890 we can see that a year of VAX time 862 00:36:44,890 --> 00:36:47,480 will turn into five minutes on this machine. 863 00:36:47,480 --> 00:36:49,100 And clearly, any calculation which 864 00:36:49,100 --> 00:36:51,100 would take a year on a VAX today, if all you had 865 00:36:51,100 --> 00:36:52,900 was a VAX, you probably wouldn't run it. 866 00:36:52,900 --> 00:36:55,570 In fact, just imagine that you have this machine at your house 867 00:36:55,570 --> 00:36:57,550 and you want to run a calculation overnight. 868 00:36:57,550 --> 00:36:59,145 How much equivalent VAX computing 869 00:36:59,145 --> 00:37:01,270 can you get in an overnight run, an eight-hour run? 870 00:37:01,270 --> 00:37:03,020 It's about a century's worth. 871 00:37:03,020 --> 00:37:06,220 So this is a little bit like the situation with space travel. 872 00:37:06,220 --> 00:37:09,102 You can imagine, if the speed of space travel is advancing, 873 00:37:09,102 --> 00:37:10,810 that the sublight ships that are sent out 874 00:37:10,810 --> 00:37:13,270 get passed by the ships with the warp drive. 875 00:37:13,270 --> 00:37:15,730 So starting a calculation on your VAX today 876 00:37:15,730 --> 00:37:19,240 that'll complete a century from now, why bother? 877 00:37:19,240 --> 00:37:21,460 Wait 15 years, and then run it for eight hours. 878 00:37:21,460 --> 00:37:24,010 It's the same sort of situation. 879 00:37:24,010 --> 00:37:26,080 How could we build a Sun-9? 880 00:37:26,080 --> 00:37:31,120 Well, a Sun-9 might have a 10 picosecond cycle time. 881 00:37:31,120 --> 00:37:34,300 The speed of light says that about a centimeter sugar 882 00:37:34,300 --> 00:37:37,870 cube-sized computer will be about 33 picoseconds across. 883 00:37:37,870 --> 00:37:40,280 That's about the largest we can make the computer. 884 00:37:40,280 --> 00:37:42,850 In fact, if you get some information 885 00:37:42,850 --> 00:37:45,760 about the Cray-3 and the Cray-4 that Cray is building, 886 00:37:45,760 --> 00:37:48,400 you'll see that the very important thing that he has 887 00:37:48,400 --> 00:37:51,250 is how big can the computer be? 888 00:37:51,250 --> 00:37:53,770 The speed of light limits the maximum diameter 889 00:37:53,770 --> 00:37:55,690 of his machine. 890 00:37:55,690 --> 00:37:59,258 So this machine has to be substantially smaller. 891 00:37:59,258 --> 00:38:01,300 It has to be small enough that the main memory is 892 00:38:01,300 --> 00:38:04,060 within a cache miss delay in terms 893 00:38:04,060 --> 00:38:08,020 of speed of light distance of the processor. 894 00:38:08,020 --> 00:38:09,520 Of course, Cray is really pioneering 895 00:38:09,520 --> 00:38:11,770 these kinds of machines, building them with lasers. 896 00:38:11,770 --> 00:38:13,870 What he does is he has a laser which works 897 00:38:13,870 --> 00:38:15,940 in a one square-inch area. 898 00:38:15,940 --> 00:38:18,130 So the laser beaming together all the components 899 00:38:18,130 --> 00:38:22,120 and squishing them down into, say, a one-foot cube. 900 00:38:22,120 --> 00:38:24,700 For 2001, we can imagine that we might 901 00:38:24,700 --> 00:38:28,870 use molecular-level assembly, either 902 00:38:28,870 --> 00:38:32,350 taking individual silicon wafers and stacking them up 903 00:38:32,350 --> 00:38:34,480 like we stack up layers in PC boards today, 904 00:38:34,480 --> 00:38:38,770 so we may have 1,000 layers of silicon to make this cube. 905 00:38:38,770 --> 00:38:41,950 Or even farther out speculation on how we might get 906 00:38:41,950 --> 00:38:44,110 organic-like micro assemblers. 907 00:38:44,110 --> 00:38:46,180 Things like little DNA and RNA to run around 908 00:38:46,180 --> 00:38:49,420 in a symbol of this little computer creature out 909 00:38:49,420 --> 00:38:51,280 of constituent parts. 910 00:38:51,280 --> 00:38:52,600 People have speculated on this. 911 00:38:52,600 --> 00:38:55,660 If you look at the book by K Eric Drexler called Engines 912 00:38:55,660 --> 00:38:58,330 of Creation, he has some very interesting speculation 913 00:38:58,330 --> 00:39:02,580 about what such machines could do. 914 00:39:02,580 --> 00:39:04,382 What can we say for sure about the Sun-9? 915 00:39:04,382 --> 00:39:06,090 I think the one thing we can say for sure 916 00:39:06,090 --> 00:39:07,860 is it will require new software. 917 00:39:07,860 --> 00:39:11,700 Any machine that's 100,000 times faster than what we have today, 918 00:39:11,700 --> 00:39:14,640 we won't find the current software very interesting. 919 00:39:14,640 --> 00:39:15,990 And it'll be for many reasons. 920 00:39:15,990 --> 00:39:17,820 Because we'll interact with it in a different way, 921 00:39:17,820 --> 00:39:19,650 with graphics and with voice, as opposed to 922 00:39:19,650 --> 00:39:22,440 with a mouse and keyboard, but also just 923 00:39:22,440 --> 00:39:25,650 because the power of the machine allows us to use new paradigms. 924 00:39:25,650 --> 00:39:28,770 The other thing that's surprising about the Sun-9 925 00:39:28,770 --> 00:39:33,655 is that it would either have to be increased in power by being 926 00:39:33,655 --> 00:39:36,030 made parallel, and you'd just have to put a bunch of them 927 00:39:36,030 --> 00:39:38,970 together, or it'll have to have a graphics accelerator option. 928 00:39:38,970 --> 00:39:42,810 If you take the kind of software that Pixar uses today 929 00:39:42,810 --> 00:39:45,030 to produce the animation sequences that are always 930 00:39:45,030 --> 00:39:48,000 the last one shown at SIGGRAPH, the very nicest computer 931 00:39:48,000 --> 00:39:50,320 animation, it wouldn't run in real time, 932 00:39:50,320 --> 00:39:53,700 even on a machine that's 100,000 times as fast as a VAX. 933 00:39:53,700 --> 00:39:56,700 If we can imagine 64 or 100 of these machines 934 00:39:56,700 --> 00:39:58,800 with some parallel construction in a language that 935 00:39:58,800 --> 00:40:00,930 allows us to take advantage of them, 936 00:40:00,930 --> 00:40:03,112 then maybe that machine will be fast enough. 937 00:40:03,112 --> 00:40:05,070 But it probably won't be the entry-level system 938 00:40:05,070 --> 00:40:07,725 for your average engineer. 939 00:40:07,725 --> 00:40:10,920 940 00:40:10,920 --> 00:40:14,220 So just to sum up the talk and give you 941 00:40:14,220 --> 00:40:17,800 a few conclusions about what all this might mean, 942 00:40:17,800 --> 00:40:21,150 we think that open systems are the way to go. 943 00:40:21,150 --> 00:40:25,140 Open systems are the ones that are best adapted 944 00:40:25,140 --> 00:40:27,660 to an environment where change will occur rapidly. 945 00:40:27,660 --> 00:40:29,460 If we really believe that systems 946 00:40:29,460 --> 00:40:32,820 will be 100,000 times as powerful as they are just 947 00:40:32,820 --> 00:40:35,100 15 years from now, that sort of advance 948 00:40:35,100 --> 00:40:38,550 is going to occur in many, many steps. 949 00:40:38,550 --> 00:40:40,450 Things are going to be changing constantly. 950 00:40:40,450 --> 00:40:43,350 And we need the leverage of the open systems approach 951 00:40:43,350 --> 00:40:45,090 to go out and get access to the best 952 00:40:45,090 --> 00:40:46,380 technology in the marketplace. 953 00:40:46,380 --> 00:40:48,180 Only by partnering with other people can 954 00:40:48,180 --> 00:40:50,010 we get access to that technology. 955 00:40:50,010 --> 00:40:52,260 No single company makes all the kinds 956 00:40:52,260 --> 00:40:55,890 of computers you need today to build the best systems. 957 00:40:55,890 --> 00:40:59,040 No single company is going to control 958 00:40:59,040 --> 00:41:00,810 all the state of the art technology 959 00:41:00,810 --> 00:41:04,590 that's going to be required in the next 15 years. 960 00:41:04,590 --> 00:41:10,590 UNIX and SPARC are providing us with at least one solution 961 00:41:10,590 --> 00:41:14,310 to the problem of an open system based on UNIX. 962 00:41:14,310 --> 00:41:17,973 With DOS and OS/2 links and compatibility, 963 00:41:17,973 --> 00:41:19,890 all the kinds of software that you want to run 964 00:41:19,890 --> 00:41:21,360 can be run on a single platform. 965 00:41:21,360 --> 00:41:24,750 And we think UNIX has a good chance of surviving 966 00:41:24,750 --> 00:41:26,640 into the '90s and SPARC has a good chance 967 00:41:26,640 --> 00:41:29,760 of being a major UNIX platform. 968 00:41:29,760 --> 00:41:30,900 Super workstations. 969 00:41:30,900 --> 00:41:32,850 These workstations with Cray-like performance 970 00:41:32,850 --> 00:41:34,320 and high-quality graphics are, we 971 00:41:34,320 --> 00:41:36,385 believe, the next wave of UNIX platform. 972 00:41:36,385 --> 00:41:38,010 Whole new applications are going to get 973 00:41:38,010 --> 00:41:39,968 written, because those machines are so powerful 974 00:41:39,968 --> 00:41:41,970 and because of the kind of quality graphics 975 00:41:41,970 --> 00:41:46,260 that you can do once you can simulate the real world much 976 00:41:46,260 --> 00:41:49,260 more closely on the display. 977 00:41:49,260 --> 00:41:50,760 So if you're thinking about what you 978 00:41:50,760 --> 00:41:52,927 might be doing in a few years, what kind of research 979 00:41:52,927 --> 00:41:54,900 you might be doing, thinking about starting 980 00:41:54,900 --> 00:41:56,900 your own business, which is a very popular thing 981 00:41:56,900 --> 00:41:59,580 to do these days, I think that one thing you have to plan for 982 00:41:59,580 --> 00:42:01,770 is very rapid advance of technology. 983 00:42:01,770 --> 00:42:04,080 I think you'll have UNIX to take advantage of. 984 00:42:04,080 --> 00:42:07,140 And UNIX and the architecture, hardware, all these component 985 00:42:07,140 --> 00:42:10,720 things are going to advance very, very quickly. 986 00:42:10,720 --> 00:42:13,980 And it's people who know how to solve interesting problems that 987 00:42:13,980 --> 00:42:16,410 are going to retain long-term value in their skills 988 00:42:16,410 --> 00:42:17,230 in the marketplace. 989 00:42:17,230 --> 00:42:21,000 So if you learn how to apply a good methodology 990 00:42:21,000 --> 00:42:23,910 to problem-solving against a particular set of computing 991 00:42:23,910 --> 00:42:27,210 tools and just be prepared that the tools are going to change, 992 00:42:27,210 --> 00:42:30,388 the methodology will still be valuable, 993 00:42:30,388 --> 00:42:32,430 and you'll have a lot of fun in the next 15 years 994 00:42:32,430 --> 00:42:35,770 as we all watch the exciting future of computing. 995 00:42:35,770 --> 00:42:36,270 Thank you. 996 00:42:36,270 --> 00:42:42,320 997 00:42:42,320 --> 00:42:44,300 I'm Judith Fleming from University Video 998 00:42:44,300 --> 00:42:46,880 Communications, and our first faculty question 999 00:42:46,880 --> 00:42:49,280 is from Columbia University. 1000 00:42:49,280 --> 00:42:51,980 Bill, with a network of distributed workstations, 1001 00:42:51,980 --> 00:42:54,590 can we use the high degree of hardware redundancy 1002 00:42:54,590 --> 00:42:58,010 to increase system availability? 1003 00:42:58,010 --> 00:42:59,120 Yes, I think we can. 1004 00:42:59,120 --> 00:43:02,450 The trend, really, is for computers 1005 00:43:02,450 --> 00:43:04,530 to become much less expensive. 1006 00:43:04,530 --> 00:43:08,510 And so just as today in buildings, 1007 00:43:08,510 --> 00:43:12,650 for example, there are many small motors, 1008 00:43:12,650 --> 00:43:14,600 what we'd call fractional horsepower motors. 1009 00:43:14,600 --> 00:43:16,142 They're buried all over the building, 1010 00:43:16,142 --> 00:43:19,072 it's almost impossible to count how many of them there are. 1011 00:43:19,072 --> 00:43:21,530 In the future, we can imagine that if you walk into a room, 1012 00:43:21,530 --> 00:43:25,610 you won't be able to tell how many computers are in the room. 1013 00:43:25,610 --> 00:43:28,310 And you might imagine that the studio that we're sitting in 1014 00:43:28,310 --> 00:43:31,520 could have tens or hundreds of microprocessors 1015 00:43:31,520 --> 00:43:33,920 and workstations and other things, all of which 1016 00:43:33,920 --> 00:43:36,590 are using very sophisticated software so 1017 00:43:36,590 --> 00:43:38,540 that the failure of any single one of them 1018 00:43:38,540 --> 00:43:40,880 wouldn't be apparent to us. 1019 00:43:40,880 --> 00:43:43,760 So I think that software is still in the research stage, 1020 00:43:43,760 --> 00:43:46,430 but it's going to be very important in the next decade. 1021 00:43:46,430 --> 00:43:49,580 1022 00:43:49,580 --> 00:43:53,780 Our next faculty question comes from Purdue University. 1023 00:43:53,780 --> 00:43:56,188 What have we learned from the experience with UNIX? 1024 00:43:56,188 --> 00:43:57,980 Should architectures be refined to suit it? 1025 00:43:57,980 --> 00:44:00,320 And a question to tag on the end of that, 1026 00:44:00,320 --> 00:44:04,220 can the government require UNIX as a standard? 1027 00:44:04,220 --> 00:44:06,380 I think we've learned a lot from UNIX. 1028 00:44:06,380 --> 00:44:07,820 Not all of it is technical. 1029 00:44:07,820 --> 00:44:10,370 We've seen a way in which something 1030 00:44:10,370 --> 00:44:14,360 which is used by a lot of people over a long period of time 1031 00:44:14,360 --> 00:44:16,730 in a very informal way can eventually come 1032 00:44:16,730 --> 00:44:18,210 to be accepted in the industry. 1033 00:44:18,210 --> 00:44:20,810 I think that's a good pattern for a lot of work done 1034 00:44:20,810 --> 00:44:22,490 in universities and research labs 1035 00:44:22,490 --> 00:44:25,490 to reach the market successfully. 1036 00:44:25,490 --> 00:44:27,440 In terms of evolving computer architectures, 1037 00:44:27,440 --> 00:44:31,820 I think UNIX has done a good job of helping us discard 1038 00:44:31,820 --> 00:44:33,830 a lot of architectures which had, 1039 00:44:33,830 --> 00:44:35,630 basically, undesirable properties. 1040 00:44:35,630 --> 00:44:37,310 UNIX doesn't make that many demands 1041 00:44:37,310 --> 00:44:38,900 of the computer architecture. 1042 00:44:38,900 --> 00:44:44,390 But computer architectures that are severely 1043 00:44:44,390 --> 00:44:48,050 poorly designed or otherwise unsuitable for a lot 1044 00:44:48,050 --> 00:44:50,180 of programming languages also can't run UNIX. 1045 00:44:50,180 --> 00:44:54,410 And so UNIX really sorts that out. 1046 00:44:54,410 --> 00:44:58,610 In terms of the government requiring UNIX or DOS or, 1047 00:44:58,610 --> 00:45:03,050 other software standards in their procurements, the issue 1048 00:45:03,050 --> 00:45:08,390 today, and it's in the courts, even, as we tape this lecture, 1049 00:45:08,390 --> 00:45:11,570 is whether the government can mandate those things 1050 00:45:11,570 --> 00:45:15,270 or require them when in fact, the requirements were 1051 00:45:15,270 --> 00:45:17,020 originally developed by a single company, 1052 00:45:17,020 --> 00:45:20,150 so that you could say that UNIX is proprietary. 1053 00:45:20,150 --> 00:45:22,740 Well, I don't think that's really the issue. 1054 00:45:22,740 --> 00:45:25,130 The issue is whether UNIX is available. 1055 00:45:25,130 --> 00:45:27,110 I think it would be unfair of the government 1056 00:45:27,110 --> 00:45:29,720 to require something that the specifications of it 1057 00:45:29,720 --> 00:45:32,390 weren't available so that anyone who wanted to 1058 00:45:32,390 --> 00:45:33,500 could implement it. 1059 00:45:33,500 --> 00:45:37,600 Or, in fact, to require UNIX if it were available-- 1060 00:45:37,600 --> 00:45:40,100 the specification was available, but the only implementation 1061 00:45:40,100 --> 00:45:43,610 was so expensive that people couldn't afford to do it. 1062 00:45:43,610 --> 00:45:46,280 In practice, both UNIX and DOS, as well as 1063 00:45:46,280 --> 00:45:51,230 many other standards, are licensed inexpensively 1064 00:45:51,230 --> 00:45:53,850 and have been widely available for a very long time. 1065 00:45:53,850 --> 00:45:55,700 So there's no practical problem with anyone 1066 00:45:55,700 --> 00:45:58,550 who wants to use one of those standards from using it. 1067 00:45:58,550 --> 00:46:01,648 And UNIX and DOS do solve particular problems 1068 00:46:01,648 --> 00:46:03,440 that the government and other organizations 1069 00:46:03,440 --> 00:46:05,670 have in a very cost-effective way. 1070 00:46:05,670 --> 00:46:10,220 So back in the early part of the century, 1071 00:46:10,220 --> 00:46:12,398 Edison Electric Company was running DC power 1072 00:46:12,398 --> 00:46:13,940 and eventually got beat in the market 1073 00:46:13,940 --> 00:46:16,430 by other companies running AC power. 1074 00:46:16,430 --> 00:46:23,252 If the government had mandated AC power, because it had solved 1075 00:46:23,252 --> 00:46:24,710 problems that they had, namely they 1076 00:46:24,710 --> 00:46:26,780 could transmit it over long distances, 1077 00:46:26,780 --> 00:46:29,390 I think that that would have been a perfectly fair thing 1078 00:46:29,390 --> 00:46:30,020 for them to do. 1079 00:46:30,020 --> 00:46:35,720 So in the same way, UNIX and DOS solve problems that proprietary 1080 00:46:35,720 --> 00:46:36,950 systems don't. 1081 00:46:36,950 --> 00:46:40,483 And mandating their use to solve that problem is perfectly fair. 1082 00:46:40,483 --> 00:46:42,650 There really isn't an alternative in the marketplace 1083 00:46:42,650 --> 00:46:45,050 today. 1084 00:46:45,050 --> 00:46:48,170 OK, another question from Purdue University. 1085 00:46:48,170 --> 00:46:52,100 Many companies use only single-processor workstations 1086 00:46:52,100 --> 00:46:55,340 because of the rapidly increasing processing speeds. 1087 00:46:55,340 --> 00:46:59,360 When will applications' demands overtake their capacities? 1088 00:46:59,360 --> 00:47:03,270 When will we need multiprocessor workstations? 1089 00:47:03,270 --> 00:47:06,410 I guess from a standpoint of a university, 1090 00:47:06,410 --> 00:47:08,207 parallel processing is a real opportunity, 1091 00:47:08,207 --> 00:47:10,790 because you get to write papers about it and do research on it 1092 00:47:10,790 --> 00:47:12,595 and get a thesis and a grant. 1093 00:47:12,595 --> 00:47:15,170 And that's good, so it's a solution to the problem 1094 00:47:15,170 --> 00:47:18,152 of publishing or perishing. 1095 00:47:18,152 --> 00:47:19,610 In the commercial marketplace, when 1096 00:47:19,610 --> 00:47:21,930 you're trying to get the problem solved, though, 1097 00:47:21,930 --> 00:47:23,750 given the way languages are today, 1098 00:47:23,750 --> 00:47:26,120 parallelism is really a problem instead of a solution. 1099 00:47:26,120 --> 00:47:28,370 If I can accomplish a task at a given 1100 00:47:28,370 --> 00:47:30,932 cost with a single processor, then it gives me access 1101 00:47:30,932 --> 00:47:33,140 to more programming languages and more trained people 1102 00:47:33,140 --> 00:47:35,190 who know how to use it. 1103 00:47:35,190 --> 00:47:36,950 We hope the situation will change. 1104 00:47:36,950 --> 00:47:39,920 Over the last 20 years, the onset of parallel computing 1105 00:47:39,920 --> 00:47:42,680 has been announced many times. 1106 00:47:42,680 --> 00:47:45,710 But I think that it still remains a very difficult thing 1107 00:47:45,710 --> 00:47:48,290 to use parallel processing on the desktop. 1108 00:47:48,290 --> 00:47:51,320 And there are some vendors, namely Stellar Computer 1109 00:47:51,320 --> 00:47:55,070 and Data Computer, who are beginning to make noises. 1110 00:47:55,070 --> 00:47:58,100 They're going to be introducing their parallel desktop 1111 00:47:58,100 --> 00:48:00,740 machines in the next few months, probably. 1112 00:48:00,740 --> 00:48:03,620 And we'll get to see how well-accepted they are. 1113 00:48:03,620 --> 00:48:05,090 Parallel processing will eventually 1114 00:48:05,090 --> 00:48:08,330 appear on the desktop, but it won't be just an answer. 1115 00:48:08,330 --> 00:48:12,050 It'll also be a problem for some time. 1116 00:48:12,050 --> 00:48:14,570 This question comes from the University of California 1117 00:48:14,570 --> 00:48:15,770 at Berkeley. 1118 00:48:15,770 --> 00:48:19,280 Do you think RISC ideas and workstations are a fad? 1119 00:48:19,280 --> 00:48:21,800 Well, they definitely are a fad. 1120 00:48:21,800 --> 00:48:25,340 People want them, it's very fashionable 1121 00:48:25,340 --> 00:48:27,380 to be a RISC machine these days, as opposed 1122 00:48:27,380 --> 00:48:29,130 to what people call a [INAUDIBLE] machine, 1123 00:48:29,130 --> 00:48:30,350 a complicated machine. 1124 00:48:30,350 --> 00:48:34,700 And for better or for worse, the Intel 386 1125 00:48:34,700 --> 00:48:39,830 and RISC-based workstations are the ways 1126 00:48:39,830 --> 00:48:43,460 people want to do their computing for PCs 1127 00:48:43,460 --> 00:48:45,150 and workstations on the desktop. 1128 00:48:45,150 --> 00:48:49,640 And I think that's going to become more true. 1129 00:48:49,640 --> 00:48:52,400 This question comes from the University of Utah. 1130 00:48:52,400 --> 00:48:54,633 You talked a lot about MIPS and graphics. 1131 00:48:54,633 --> 00:48:56,300 Are there any software development tools 1132 00:48:56,300 --> 00:49:00,380 made practical by added MIPS and graphics? 1133 00:49:00,380 --> 00:49:00,890 Yes. 1134 00:49:00,890 --> 00:49:04,370 I think in the area of just the raw performance, the MIPS 1135 00:49:04,370 --> 00:49:06,620 rating, there are a lot of high-level languages 1136 00:49:06,620 --> 00:49:09,770 like Smalltalk and some of the AI-oriented environments 1137 00:49:09,770 --> 00:49:11,690 that have simply been too slow for people 1138 00:49:11,690 --> 00:49:14,420 to do production code in. 1139 00:49:14,420 --> 00:49:16,525 For example, a lot of the expert systems, 1140 00:49:16,525 --> 00:49:17,900 if you run them on real examples, 1141 00:49:17,900 --> 00:49:20,270 just take 20 minutes or 30 minutes 1142 00:49:20,270 --> 00:49:23,360 to recalculate and respond to a simple command. 1143 00:49:23,360 --> 00:49:25,940 And that's prevented people from really using them 1144 00:49:25,940 --> 00:49:29,610 in very widespread sorts of things. 1145 00:49:29,610 --> 00:49:32,930 So MIPS really breaks that bottleneck. 1146 00:49:32,930 --> 00:49:35,780 Higher-quality graphics also allows 1147 00:49:35,780 --> 00:49:39,380 people to automate and make interactive things that 1148 00:49:39,380 --> 00:49:40,920 weren't possible before. 1149 00:49:40,920 --> 00:49:43,520 In a lot of disciplines where hand-eye coordination is 1150 00:49:43,520 --> 00:49:46,340 involved, if you can't get an interactive response 1151 00:49:46,340 --> 00:49:49,400 to a movement of your hand, then you can't develop motor skills. 1152 00:49:49,400 --> 00:49:51,415 And so you need enough computing to do 1153 00:49:51,415 --> 00:49:53,540 the high-level application code and enough graphics 1154 00:49:53,540 --> 00:49:56,120 to track it on the display so that you can imagine, 1155 00:49:56,120 --> 00:49:59,463 for instance, reaching out on the display and doing, 1156 00:49:59,463 --> 00:50:01,130 with a gesturing interface [INAUDIBLE],, 1157 00:50:01,130 --> 00:50:03,950 what a sculptor does in molding clay. 1158 00:50:03,950 --> 00:50:06,890 You couldn't automate that today on a computer, 1159 00:50:06,890 --> 00:50:10,200 because the graphics and the processing aren't fast enough. 1160 00:50:10,200 --> 00:50:15,240 So I think there are many things we can imagine. 1161 00:50:15,240 --> 00:50:17,790 OK, and our final question. 1162 00:50:17,790 --> 00:50:20,340 Among your co-workers, you have the reputation 1163 00:50:20,340 --> 00:50:23,490 of finding simple solutions to complex problems. 1164 00:50:23,490 --> 00:50:26,710 Can you comment on your strategies? 1165 00:50:26,710 --> 00:50:27,210 Yeah. 1166 00:50:27,210 --> 00:50:29,820 I think if you're too close to the details, 1167 00:50:29,820 --> 00:50:32,670 sometimes you tend to find complicated solutions 1168 00:50:32,670 --> 00:50:33,180 to problems. 1169 00:50:33,180 --> 00:50:36,750 I think part of it is a question of perspective. 1170 00:50:36,750 --> 00:50:38,880 People need to go home from work. 1171 00:50:38,880 --> 00:50:41,370 In Silicon Valley here, we tend to work very, very late. 1172 00:50:41,370 --> 00:50:43,260 But you need to go home and relax and think 1173 00:50:43,260 --> 00:50:45,120 about things in a very clear way. 1174 00:50:45,120 --> 00:50:48,810 State what your assumptions are, question all your assumptions, 1175 00:50:48,810 --> 00:50:51,275 and try things that seem crazy. 1176 00:50:51,275 --> 00:50:53,400 A lot of times, a crazy idea that's obviously wrong 1177 00:50:53,400 --> 00:50:55,290 can be fixed into one that's right. 1178 00:50:55,290 --> 00:50:58,150 And brainstorming in small groups works very well. 1179 00:50:58,150 --> 00:51:03,000 And so we encourage people to regularly do these things 1180 00:51:03,000 --> 00:51:07,080 and it works very well for us. 1181 00:51:07,080 --> 00:51:08,160 Thank you very much. 1182 00:51:08,160 --> 00:51:08,880 Thank you. 1183 00:51:08,880 --> 00:51:12,190 And thank you for joining us. 1184 00:51:12,190 --> 00:51:15,970 We invite your comments and questions on this presentation. 1185 00:51:15,970 --> 00:51:17,760 We hope that you will make nominations 1186 00:51:17,760 --> 00:51:21,030 for future speakers and future topics. 1187 00:51:21,030 --> 00:51:25,950 And for these purposes, we have provided feedback postcards 1188 00:51:25,950 --> 00:51:28,770 under the label of your videocassette. 1189 00:51:28,770 --> 00:51:30,740 Thank you again. 1190 00:51:30,740 --> 00:52:00,000