Quotes from "Oral History of Charles (Chuck) Thacker" - PDP-10/maxc GitHub Wiki
Thacker: This is early 1971 now, and we looked around for what to do about computing and we thought about buying a 940, and that would have been very politically correct, because Xerox had just bought Scientific Date Systems. But SDS didn’t really like the 940. They were trying to replace it with another family called the Sigma Family, and we looked at the Sigma Family with the idea of what it would take to build a timesharing system on it, and decided that it was just not the right system. I mean, the Sigma was originally architected as an attempt to compete effectively with IBM in IBM’s markets, not realizing that if you’re going to compete with IBM’s markets, you have to have all the IBM software, because the software is what matters. And so it was never a very successful machine, and we finally decided that it wasn’t really what we wanted because it was not what the university research community, and particularly the ARPA community used for doing research. They used the PDP-10 suitably modified by a set of hardware that had been built at BBN called the BBN Pager.
Kossow: So, you had never thought about doing another BCC?
Thacker: No. Well, I think we were all pretty tired and we were investing a lot in sort of setting up the new lab, you know, sort of building the necessary infrastructure to make it actually tick. And so after quite a bit of thought, we concluded that the right thing to do was, since it would be unseemly to buy a PDP-10 from an SDS competitor, that we would build one. And so we designed the MAXC system.
Kossow: What does MAXC stand for?
Thacker: Multiple Access Xerox Computer. It is also a play on the name Max, as in Max Palevsky, who was the President of SDS. And that was actually planned and designed very rapidly. I mean, it was an interesting machine because what we decided to do was rely on commercially available packaging technology, primarily. And that meant wire-wrap cards that you could by from Augat, and backplanes, and so on and so forth. So, everything was wire-wrap.
Kossow: Was Dave Poole or Pettit, or any of the guys from SAIL involved in the design?
Thacker: No, they were not. They were up on the hill doing other things at that time.
Kossow: So, it was you and--
Thacker: Pettit actually joined SRC later for a while, until he went off to Pittsburgh to be a mystery writer, right after they did the Foonly.
Kossow: So, it looks like from the specs that, I think the first MAXC came up in the summer of ’72.
Thacker: Something like that, yeah.
Kossow: Because there’s an 8.1 version of the spec that says it’s going to be and then by July it says it is. So, it’s probably, you know--
Thacker: I mean, that was a long time ago.
Kossow: One of the bits of folklore is the story about doing your own 10 and then how it comes up so fast.
Thacker: Right, well we were very careful because we knew about the second system effect, right. BCC was the second system. It took a long time to get right.
Kossow: So, yeah, this is the third. You did Genie, you did BCC--
Thacker: And by that time--
Kossow: You knew how to build timesharing systems.
Thacker: We knew how to build systems and so the only thing that was kind of aggressive that we did was we said, we will not use core memory. We will use this newly invented semiconductor RAM called the 1103.
Kossow: Which was a total nightmare.
Thacker: Which has an interesting story. So, we designed the memory board for the machine. I remember it well. It had 96 1103 chips, and they were semiconductor memory chips with external sense amplifiers. And these were packed in a rack with four back planes, each of which contained, had to get it right, 12 of the cards and controller, or maybe, no, it was more than that. And then there were four cabinets, and they were strung together by cables. We designed our own cables and connectors for them. Our association with Jack Hawley began at that time, because we had him make the connectors. Very nice engineering job for low price, but they were all twisted pair and transmission line terminated at the end. So, electrically the thing was quite conservative and it worked very well, except for the 1103. But we knew that there was a potential for problems with the 1103, so we put single error connection and dual error detection in the memory. And when the system came up and the CPU started being able to run memory exercises, the memory worked flawlessly. And so later, when we got ready to do the Alto, we said, “Well, let’s just use the MAXC boards as the memory for the Alto, because we know how they work. They work very well, and by the way, we don’t really need error correction. We can just put parity on the memory.” Mistake, because the thing that I didn’t realize is that although I had put extensive logic into the memory system for correcting the errors and reporting the existence of single errors to the system, the software guys never read. And so the thing was actually sitting there making a lot of errors, but it was fixing them and so we never noticed. And when we put it into the Alto, the same result happened. It looked very reliable, very rarely got a parity error until we started running more complicated software that exercised the memory more thoroughly and then suddenly we would see various failures. And so this turned into an arms race between me and Intel. I would write a diagnostic to track down some particular perverse flaw in the 1103, and then we’d run it. By that time, we had e-mail and we ran it overnight on the Altos, and the machine would automatically detect errors and send e-mail to the technicians. So they could come in, in the morning, and change out the bad boards, and then run them through another tester that we built, that could by that time do very comprehensive testing of the board. After that, we always used error correction and I’m amazed that present day PCs don’t. Servers do but desktop machines do not, and I actually suspect that many of the bad events that happen on the PC are actually memory errors, because memory’s not as reliable anymore and it’s getting less reliable. So, in any case the MAXC came up and we used it. We subsequently built, I think, two more, one or two more, which were slight improvements, but nothing serious, because by that time we finally understood that we ought to have built the Alto and we did it.
Kossow: So, there’s that run up to that in ’72 when there is the TFS, all the timesharing stuff that was going on. VTS.
Thacker: Yeah, there was another system being built in the laboratory, not in our lab. There was also a thing called the System Sciences Lab, which was directed by Bill Gunning of GTL fame, and they had built a system based on interconnected Nova mini computers.
Kossow: So, is that really where the affinity for Novas starts?
Thacker: POLOS, no, actually it started before that. They chose the Nova to some extent because we did it, and we did it because we actually did a bakeoff between the PDP-11 and the Nova, and for our purposes, which was programming in higher-level languages, the Nova actually worked out to be better because it was faster. And it got through its instructions faster, and the 11 was better if you wanted to write assembly language program, do assembly language programming because that’s what Gordon Bell designed it to do. And so there were always several different ways to do the same thing on the 11, and so the compilers always had to figure out, well, which one do I use in this circumstance? And it made the compilers more complex, and we didn’t like that. So, we liked the Nova and of course we patterned the Alto on the Nova with a few improvements.
Kossow: Pretty much all of your tools for doing MAXC and everything were running on Novas?
Thacker: Correct. All the debugging stuff for the Alto itself ran on a Nova, but we never really thought about using them as part of a distributed system, and the POLOS, PARC Online Office System Group, which built the system out of a multiplicity of Novas had that idea in the beginning. The Nova had kind of a clunky network for interconnecting something like 16 machines.