[百周年記念サイト] IBM 100年の軌跡 IBM PC パーソナル・コンピューティングの発達 ttp://www.ibm.com/ibm100/jp/ja/icons/personalcomputer/ テクノロジーの飛躍的な進歩 ttp://www.ibm.com/ibm100/jp/ja/icons/personalcomputer/breakthroughs/
[Jill Leukhardt:] We were not cognizant of the importance of software that was being developed for the PC and its user base, so what is obvious today in terms of the installed base of software and the vast importance of that compatibility was not at all obvious when we were entering into the definition phase for the 386.
In terms of the competitive environment, the Motorola 68000 was a superior machine, and we knew it and felt it very strongly. We perceived that we were going to be later than the 68020, the Motorola 32-bit product that we would be later to market with the 386 and so we felt that very strongly and that created a real sense of urgency in terms of what we were trying to do.
Third, we were stuck with the 8086 approach to segmentation that was wildly reviled; everybody hated 64K-byte segments. They limited the size of data structures and that was perceived to be and was actually a limitation in certain applications. Programmers in particular and compiler writers and others just saw that as a huge limitation. Jim you want to say something?
[Jim Slager:] Oh yes it’s just humorous when you look back…that we thought it was so important to have a segment-based memory management scheme because of the Zilog MMU and it was defined into the 286 and we just thought it’d be the greatest thing in the world but customers just didn’t agree, I don’t know what was wrong with them <laughter.>.
司会 [Jim Jarrett:] So it’s early 1982 you’ve got the 286 out; there’s; nobody particularly wild about it, but it’s moving along and now a new effort is beginning to develop: a follow on to the 286, and that’s where you all come together. What was the environment within Intel at that point and the thinking about this new chip?
では1982年の初めに286を世に出して、誰も特に熱狂はしなかったがそれは続き 今度は286の後継機を新たに開発するために皆さんが集められたわけですね。その時点 で新チップに関するインテル内部の方針や環境(雰囲気?)はどうだったのでしょう? (p5) [Gene Hill:] Well actually that chip started as a non-chip; the 286 was so unsuccessful, Bill Gates called it “Brain Dead”. IBM said there could not be a follow-on; it was a dead-end architecture.
[Jarrett:] If you couldn’t do a follow-on to the 286, what was the next processor that Intel was thinking of bringing out?
286の後継が不可能とすると、次期プロセッサとしてインテルは何を考えていたのでしょうか?
[Crawford:] This was all in the shadow of the 432 microprocessor development at the time. The 432 was a very ambitious project that Intel was very firmly committed to and unfortunately it was also late and had slipped pretty significantly; so we had a number of gap fillers that were thrown into the breach. That was a little before my time, but my understanding is the 8086 microprocessor was the first of those gap fillers, followed by the 8088, the 186 and the 286. That’s another key piece of information here: the 432 project was really supposed to be our big thrust in the microprocessor market and these other efforts were really more or less gap fillers.
[Prak:] There was a variety of proposals to come up with a new architecture because there were a lot of people who realized the 432 was fatally flawed. So the project I joined originally was code-named the P4 and it was a whole new architecture that was very VAX-like. It was developed by Glen Meyers and the people in Oregon who had been responsible for the 432 wanted to try again. A number of them realized there were problems, so they wanted to do it over basically. So they had a proposal and as Gene indicated the 386, 32 bit follow-on was kind of the step child already in that discussion.
(p6) [Jarrett:] So this 386 effort was launched and I guess the first thing we need to talk about is the definition of it. I guess Jill and John you were quite involved in that process; tell us about it.
[John Crawford:] So the definition effort started-- I was there a little bit before Jill, just a few months before and there actually were two architects on the 386. There was the effort that Gene talked about earlier that Bob Childs had pulled together. It was a proposal for a 32-bit extension of the 286 and Glen Meyers had asked me to step in and do one, and so we had these two sketches of what an extension might be. So we had kind of the battle of the architectures going on a little bit.
設計が始まりました、私はJillよりほんの少し、数ヶ月前からですが、実は386には二人の 設計者がいました。先ほどGeneの話にあった取組みは Bob Childs が主導していたのです。 それは286を32bitに拡張する提案で、Glen Meyersは私にその一つに入るように指示し 拡張がどうあるべきかを、二つのスケッチ(方針)で社内競争させるようなものでした。
George Alexy was the Marketing Manager and he took Bob Childs and me out to seven selected customers to bounce both sketches off of the potential customers and get feedback from them.
[Jarrett:] So what were the key differences between the two approaches: yours and Childs? あなたのとChildsのと二つのアプローチのおもな違いは何だったのでしょう?
[Crawford:] My proposal was a simpler upgrade and I think kind of the essence of it was to focus on the key issues, which were to extend the address space to 32 bits and in particular provide a flat addressing of 32 bits. That was a key failure or lack in the 286 that I think was mentioned earlier.
(p7) Second thing was to make it a full 32 bit machine so have some way of giving it a full 32 bit instruction set. The other thing that we wanted to fix was to increase the number of registers. The proposal I put forward was a more minimal extension and admittedly it fixed two of the three issues. It provided the flat 32 bit addressing. It supplied a full 32 bit instruction set. It did not change the number of registers. The proposal and the instruction set looked-- the instruction setting coding was very similar to the 8086. So the instruction decode piece would have been a small change or a much smaller change.
Child’s proposal on the other hand tried to address all three and in doing so he ended up with a much more complicated instruction encoding strategy. In particular the 32 bit instruction set was quite different from the 16 bit instruction encoding. It did provide the opportunity though to increase the number of registers, which addressed the third point. Today I can’t remember how well it did on the first two but he did have the distinguishing factor that it increased the number of registers.
[Jarrett:] The customers gave you input and chose your approach -- correct? 顧客の意見はあなたのアプローチを選んだ… ということで正しいですか?
[Crawford:] Well I think we got mixed feedback from the customers. There were some customers that didn’t care at all about 8086 compatibility. We wanted to see a broad range of customers, some of whom weren’t even using our products, so clearly they wouldn’t care much about the compatibility. Others were quite concerned about it, but I think overall the feedback was compatibility would be nice to have but not critical, and that is kind of curious looking backwards. On the other hand, our field application engineers gave us very strong feedback that we had to run the old software, and that would be critical for success of the project and also critical for continued success of the 286 and the other products.
[Jarrett:] Was this was PC software they were concerned about? 彼らが懸念していたのは、PCソフトウェアの互換性だったのでしょうか?
[Crawford:] Oh no, not at the time, I think it wasn’t that long since August of 1981 with the big IBM PC introduction. It seemed that the PC was an interesting design but not one viewed as really the key thing to win and to do well on. Instead there was still a broad range of designs from the terminals to kind of little minicomputers to the personal computers which were just emerging.
[Jarrett:] How about the work stations? At this point was that considered to be a market to focus on?
ワークステーションはどうでしょう? これについて、市場の焦点として考慮しましたか?
[Leukhardt:] Well we thought that was a key market segment for the 386. It was not a market segment where the 286 was doing well at all; it was a market segment where the 68000 was cleaning up principally because the 286 was not viewed as a machine that ran Unix well and the 68000 was viewed as a natural Unix machine. So when we were working on the 386 definition we wanted it to have as one of its attributes being able to run Unix well. So that’s one of the things that influenced us in terms of wanting to have a way to run the 386 as a flat 32-bit machine, and that’s one of the things that led to all the angst in the definition process about compatibility versus a flat 32bit machine and how they would coexist.
[Jarrett:] So that shapes up as a key challenge architecturally; how did you address that? アーキテクチャ的に挑戦すべき鍵となる点が形作られたわけですが、どう取扱いましたか?
(p8) [Crawford:] In fact that was one of the most difficult architectural issues that I had to wrestle with: how to keep that compatibility with the segmentation yet provide this thing and I know we went through endless iterations and had a lot of advice from many people. In the end the thing that worked was inventing a fictional address space in between the programmer’s virtual address space and the physical address that you go to memory with; in fact we had to invent a new name for it, so we called it the “linear address space” We kept the segments but we provided the ability to have a segment that was four gigabytes in size and that let the workstation guys and the Unix people address this four gigabyte flat address space basically by setting up one segment and having all of their programming objects within that one segment.
[Slager:] Of course there’s controversy about all of this and, you know, it’s incredible and one thing that I remember well is that the architect of the 8086, one of the two architects, Steve Morris, who started the whole X86 phenomenon… he was bitterly opposed to the segmentation model that was installed in the 286. When the 386 turn came he was very active-- he was still at Intel in software somewhere-- and he was very much opposed to the segmentation model because of the two-part pointers. In fact he called it software poison.
This was the environment that John had to work in and he did come up with a brilliant solution. We ultimately ended up with the best of all worlds: we had the compatability, but that whole segmentation model which was pretty much generally hated could just move over to the side and not interfere with the software. It still had to be there, we had to design it in and test it and that was pretty bad, but it could get out of the way and not prevent the success of the 386.
[Leukhardt:] Now in some ways we’re getting ahead of ourselves because we got to the solution that included segmentation plus a flat address space, sort of the “have it your way” approach after we made the decision that we had to build a fully compatible machine that is an object code compatible 386, and that took a long time to decide. In retrospect that seems like a completely obvious decision but we wrestled with that decision for months and it was a tough decision-making process.
[Jarrett:] So John, you came up with this new approach that would accommodate both segmentation and paging. Was there any kind of a performance price that you paid as a result of this?
[Crawford:] That’s an interesting question; in fact it was obviously a big concern because we were putting in two translation steps. Of course it’s a critical path on any computer, and that was a big concern all through the internals of the chip and even the BUS definition that was a careful concern. But the advantage was, I think it was mentioned before, we got the best of both worlds: we had segments for compatibility and paging for a flat address base; that was pretty much everybody.
[Jarrett:] Now internally, did everybody buy into this immediately or was there some debate on this approach?
社内的には全員がすぐに賛成したのですか、それともこの方法に何か議論がありましたか?
[Crawford:] Well, I think that came at some point in 1982, but before that there were many proposals, obviously which didn’t survive, that didn’t solve the problem as completely. At some point there was a decision taken to go with my architecture as opposed to the Bob Childs architecture. As I remember, a key part of that was involved the software compatibility question and how efficiently we needed to run old software, and whether there would be a mode bit and basically have two machines in one or something more tightly integrated.
ええ、これは1982年のどこかだと思いますが、それ以前は多くの提案がありました。 明らかにどれも生き残りませんでした。完全には問題を解決できなかったからです。 ある時点で Bob Childsのアーキテクチャでなく、私の案で行く決定がなされました。 私の記憶では鍵となる要素には、互換性の問題や古いソフトをどの程度効率よく動かす 必要があるか、モード・ビットを使って基本的に二種のマシンを入れるのか、それとも より緊密に統合するのか、という点を含んでました。
I think for reasons of simplicity and for efficiency and time pressure we opted for the simpler model, which is the one that I had proposed that gave us the 32-bit extensions but without having a mode bit and without having a huge difference in the instruction sets. As I mentioned earlier, the price for that was we kept the eight-register model which was a drawback of the X86, but not a major one.
[Crawford:] (続き) I guess in addition I got half credit for the register extension because I was able to generalize the registers. On the 8086 they were quite specialized and the software people hated that too. One of the things I was able to get into the architecture was to allow any register to be used to address memory as a base or an index register, and was even able to squeeze in a scale factor for the index.