I'm David Rosenthal, and this is a place to discuss the work I'm doing in Digital Preservation.
Tuesday, November 20, 2018
John Wharton RIP
My friend John Wharton died last Wednesday of cancer. He was intelligent, eccentric, opinionated on many subjects, and occasionally extraordinarily irritating. He was important in the history of computing as the instruction set architect (PDF) of the Intel 8051, Intel's highest-volume microprocessor, and probably the most-implemented instruction set of all time, and as the long-time chair of the Asilomar Microcomputer Workshop. I attended AMW first in 1987, and nearly all years since. I served on the committee with John from 2000 through 2016, when grandparent duties forced a hiatus.
On hearing of his death, I thought to update his Wikipedia page, but found none. I collected much information from fellow Asilomar attendees, and drafted a page for him, which is has been published. Most of the best stories about John have no chance of satisfying Wikipedia's strict standards for sourcing and relevance, so I have collected some below the fold for posterity.
John was a founding member of the editorial board of Microprocessor Report, writing for it frequently. His opinion columns were often contrarian, and ended up being called "Oblique Perspective". A collection from August 1988 to August 1995 includes among others:
Architecture vs. Implementation in RISC Wars (8/88)
Unanswered Questions on the i860 (5/89)
The "Truth" About Benchmarks (5/18/90)
Does Microcomputer R&D Really Pay Off? (9/19/90)
Have The Marketing Gurus Gone Too Far? (5/15/91)
A Software Emulation Primer (10/2/91)
The Irrelevance Of Being Earnest (4/15/92)
Why RISC Is Doomed (8/19/92)
Brave New Worlds (12/9/92)
Breaking Moore's Law (5/8/95)
Is Intel Sandbagging on Speed? (8/21/95)
They're all worth reading, I've just hit the highlights.
One of the "Oblique Perspectives" deserves special mention. In How To Win Design Contests (10/17/90) John propounds a set of rules for winning design contests and, in a section entitled A Case-Study In Goal-Oriented Design, shows how he used them to win a red Porsche 944! The rules are:
Go ahead and enter. No-one else will, and you can't win otherwise.
Another department staged a single-board-computer design contest, with development systems and in-circuit emulators worth thousands of dollars as prizes. Their most creative entry proposed to install computers in public lavatories to monitor paper towel and toilet paper consumption and alert the janitor if a crisis was imminent. No one could tell if the proposal was a joke, but it won top honors anyway.
Consider what the sponsor really wants.
So the best way to win is to reverse engineer the sponsor's intentions: figure out what characteristics he'd most like to publicize and then put together an application-possibly contrived-with each of these characteristics.
Keep it really, really, really simple.
The judges will have a number of entries to evaluate, and those they understand will have the inside track. ... It's far better to address a real-world problem the public already understands so they can begin to grasp your solution and see the widget's advantages immediately.
Devote time to your entry commensurate with the value of the prize.
The entry form may request a five-line summary of your proposal and its advantages, but this isn't a quick-pick lottery. If the contest is worth entering, it's worth entering right, and neatness counts.
John starts by applying rule 4:
The Porsche was worth about $25,000. Based on the tum-out of previous contests, I guessed Seeq would get at best four other serious entries, which put my odds of winning at one in five. That justified an investment of up to $5,000 worth of my time - about two weeks - enough to go thoroughly overboard on my entry.
And goes on to describe designing and prototyping a "smart lock". He concludes:
It seems my expectations were overly optimistic on two fronts. I'd underestimated the number of competing designs by an order of magnitude, and while my entry's basic concepts and gimmicks were all developed in one evening, it took a week longer than I'd planned to debug the breadboard and document the design.
Even so, I, too, was happy with the results. Some months after the contest ended - on my birthday, by happy coincidence -! got the call. My lock had been judged best-of-show; I'd won the car. The award ceremony - with full media coverage - was one week later.
So, if you notice a shiny, red, no-longer-new Porsche cruising the streets of Silicon Valley, sporting vanity plates "EEPRIZ," you'll be seeing one of the spoils of design contests. Fame and fortune can be yours, too, if you simply apply a little creative effort.
The Asilomar Microcomputer Workshop
AMW started in 1975 with sponsorship from IEEE. David Laws' writes in his brief history of the workshop about the first John attended and spoke at:
The last IEEE-sponsored workshop in 1980 featured a rich program of
Silicon Valley nobility. Jim Clark of Stanford University spoke on the
geometry engine that kick-started Silicon Graphics. RISC pioneer Dave
Patterson of UC Berkeley covered “Single Chip Computers of the Future,” a
topic that evolved over the subsequent year and led to his 1981 “The
RISC” talk. In 2018 Patterson shared the Turing Award with John Hennessy
of Stanford for their work on RISC architecture. Gary Kildall, who both
influenced and was influenced by discussions at the workshop, described
his PL/I compiler. Designer of the first planar IC and the first MOS
IC, Bob Norman talked about applications of VLSI. Carver Mead capped
this off with a keynote talk on his design methodology.
John started chairing sessions in 1983, and became Chair of the workshop in 1985, a position he continued to hold through 1997. He was Program Chair from 1999 through 2017. The format, the eclectic content, and the longevity of AMW are all testament to John's work over three decades.
The title of John's 1980 talk was "Microprocessor-controlled carburetion", which presumably had something to do with ...
Engine Control Computers
In Found Technology (4/17/91) John recounted having a problem with his Toyota in Tehachapi, CA and attempting to impress the Master Mechanic:
"In fact, I developed Ford's very first engine computer, back in the '70s." That should impress him, I thought.
He pondered briefly, then asked: "EEC-3 or -4?"
This guy was good. "I thought it was EEC-1," I began, trying to
remember the "electronic engine control" designators. "It was the first
time a computer ... "
"Nah, EEC-1 and -2 used discrete parts," he interrupted. "EEC-3 was the first with a microprocessor."
"That was it, then. It had an off-the-shelf 8048."
mean you designed EEC-3?" the Master Mechanic asked incredulously.
"Hey, George!" he shouted to the guy working under the hood. 'When
you're done fixing this guy's car, push it out back and torch it! He
So much for impressing the Mechanic. "Huh?" I shot back defensively. "Did EEC-3 have a problem?"
"Reliability, mostly," he replied. "The 02-sensor brackets could break, and the connectors corroded."
I beat a hasty retreat. "Those sound like hardware problems," I said. "All I did was the software."
Stan Mazor recounts the early history of engine control computers:
an App Engineer at Intel, GM engaged me to help them design a car that
used an on board computer to do lots of stuff, even measure the tire
pressure of a moving vehicle. Little did I understand at the time that
auto companies HATED electronic company's components, and their motive
was to prove that computer chips COULD NOT be used. I only learned that
in their project work. When VW announced and demonstrated an on board
diagnostic computer, the auto industry (USA) was hugely embarrassed and
tried to catch up with VW.
Due to pollution and
government mandates, Ford implemented a catalytic converter with a
Zirconium Oxide sensor. Their 8048 computer measured the pollution, and
servo'd the car's carburetor mixture
of fuel and oxygen. (recall ancient cars had a manual choke). John and
his associate were Intel app engineers on the project. As I best recall
their program used pulse-width duty cycle modulation to control the
'solenoid' controlling fuel mix, (Hint: too lean, too rich, too lean,
too lean, etc.)
Now comes the interesting story:
Cranking the starter on a cold car, injected huge transient voltage into
the CPU, and scrambled the program counter, and the app could start at
any instruction, no that's not quite the issue.
8048 has 1 and 2 byte instructions, so the program counter could enter
up at any byte, yes, the middle of an instruction and interpret that
byte as an op code, even if it was a numeric constant,
or half of a jump address !!!
No that's only half the
story: It turns out that one of the 8048 instructions is irreversible
under program control and the only way out (of mode 2), was to hit the
reset line!!!. So the poor guys (John) had to re-write their code to
insure that no single byte of object code could be the same as that
magical (and unwanted) instruction operation code.
This paper describes the implementation of model vehicles with neural network control systems based on Valentino Braitenberg's thought experiment. The vehicles provide a platform for experimentation with neural network functions in a novel format. Their operation is facilitated by the use of a commercially available neural network simulator to define the network for downloading to the vehicles.
The block diagram shows a vehicle with right and left sensor arrays feeding an 8051 running neural network code from an EPROM. The network definition is downloaded into RAM via a serial link. The 8051 drives right and left motors. Their development environment was MacBrain:
The network model implemented in the current firmware is similar to that used by MacBrain, a neural network simulator for Macintosh computers, ... MacBrain allows the user to create and edit networks on screen, load and save network definitions to disk, and run simulations of networks while observing the changing activation of the various network units.
In "Further Work" they wrote:
One area of potential interest not addressed in initial version of the vehicle's network simulation model was the dynamic alteration of network parameters during operation based on sensory input and network activation. While any of the network's parameters could be changed in this manner, the most likely candidate would be the link weights. The alteration of link weights based on some criteria is a widely used model for "learning" in neural network experimentation and, indeed, is thought to be part of the mechanism for learning and memory in real biological nervous systems.
1996, when the Letterman show came to San Francisco, Mr. Wharton made a
calculated effort to get noticed. He figured out which seats the camera
would be most likely to focus on and made sure that he was seated
there. He made himself conspicuous by undoing his ponytail and donning a
tie-dyed shirt. He looked ''just like the sort of San Francisco
hippie'' the show's producers would expect to see, he said.
worked. Mr. Letterman himself strode into the audience, asked Mr.
Wharton his name, then asked if he would agree to take a shower in the
host's dressing room -- an ongoing gag of Mr. Letterman's. Mr. Wharton
happily obliged. The cameras followed Mr. Wharton, from his torso up, as
he disrobed, stepped into the shower and lathered up. On his way back
into the audience, clad in a white bathrobe, he managed to snatch a copy
of the script.
Mr. Wharton derives much of his satisfaction from the thrill of the
puzzle itself, like the inner workings of the Furby. Apart from Dave
Hampton, the inventor and engineer who created Furby and whom Mr.
Wharton reveres, Mr. Wharton may understand Furby's innards better than
anyone else. Although he and Mr. Hampton are acquainted, Mr. Wharton
would never think to ask Mr. Hampton for a road map.
''That would be cheating,'' he said. ''It would be like asking the guy who wrote the crossword puzzle for the answers.''
Dave Hampton was a frequent attendee at AMW. One year he bought a large box full of Furbies as gifts for the attendees. At John's instigation, a few of us turned them all on, replaced them carefully in the box, carried the box carefully into the room where the meeting was underway, and shook the box. Whereupon they all woke up and started to talk to their friends. The sound of about a hundred Furbies in full chatter has to be heard to be believed.
The chapter included the story of how Tim Paterson's QDOS (Quick and Dirty Operating System), reverse-engineered from CP/M, became MicroSoft's 86-DOS, which led Paterson to file:
a defamation lawsuit, Paterson v Little, Brown & Co,
against Sir Harry in Seattle, claiming the book's assertions had caused
him "great pain and mental anguish". The court heard the detailed API
evidence, and rejected Paterson's suit in 2007. US federal Judge Thomas
Zilly observed that Evans' description of Paterson's software as a
"rip-off" was negative, but not necessarily defamatory, and said the
technical evidence justified Sir Harry's characterisation of QDOS as a
Much of the technical evidence came from John, who was tasked at Intel with evaluating 86-DOS and showed that it was only a partial clone of CP/M, as described in the image of a letter to Microprocessor Report in 1994. The image comes from John's obituary by Andrew Orlowski in The Register.
Mark Olson provides this annotated scan of page 9-102 of the 1983 edition of Intel's Microcontroller Handbook in which it was included (it is page 46 of the PDF linked from the reference).
Click to embiggen. See this comment for another of them.
Update 3: Memorial Web Site
Michael Takamoto has set up a memorial Web site for John, from which I obtained the pictures of John's 944, alas before the vanity license plate, and of the newspaper article about it. The site includes links to two other appearances John made in the New York Times:
Thanks for this tribute. John was a most interesting character who has affected many people's lives in various ways. Thank you for honoring his life in this way!
I am happy that John's description of Gary Kildall's contributions to the world are beautifully memorialized in the video here - this was part of the CP/M IEEE Milestone dedication in 2014, which followed the Asilomar Microcomputer Workshop that year. I feel that it shows John at his best, as a teacher - and amazingly he had not planned what he was going to say until shortly before I introduced him!
Brian Berg, Asilomar Microcomputer Workshop Committee member, 1989-present (and General Chair: 1998-2000)
I was with John in the audience that night when Late Night with David Letterman was taped in San Francisco. The whole story is extra-rich with nuance, texture, and details, but my one-line summary captures some of John's finer essences: He's the only guy I've ever known who could pay $250--when (1996) that was a tidy sum--for a free ticket--he bought a pair of tickets for us from a Craigslist ad--and *profit* from the deal. You see, as The Shower Guy, John did enough on-camera "work" to earn a union scale paycheck for the effort. I can't remember the amount precisely, but the check was for over $600. And he got a plush bath robe (presumably Letterman's or a duplicate), two towels, I believe a wash cloth, some flip-flops, and he pilfered a show script on his way out.
John most definitely engineered himself to maximize the probability that Letterman would notice and talk to him, but providence played a part as well. As we were being seated, almost all of the first rows in the center section were filled, and if we had dutifully followed the line of people, we would have been seated way in the back of the stage-left section, an area that would be far from Letterman and very much in the dark during the show.
There were, however, two single seats on the isle in rows two and three; I realized it was imperative that John take one of those seats, so I asked the usher if we could sit there. He shrugged his shoulders, looked at John for a moment (I realized this later), and said "sure." In life, sometimes you have to work hard to get lucky.
We would not sit together, which made me unhappy because John and I would not be able to commiserate during the show (we were both big Letterman fans). As it turned out, it didn't matter: John was backstage after Letterman's monologue anyway. :)
John never lost the best parts of childish curiosity and had a sense of polite mischief all his own. Once, after an evening meal at The Asilomar Microcomputer Workshop, he asked the attendees, "Can I have a show of hands please. Who had the chicken? Okay, who had the beef? And, finally, who had the pork? Okay, thanks." Of course, about a third of the group responded to each choice despite the fact that we all had the same meal. After about ten seconds, the group understood the it had been duped and the point of the prank.
I saw him a few weeks and spoke to him a couple of days before his passing, and even in his final days, he continued to find humor in and express amazement at the ways of the world. I worked closely with John off and on for over ten years, and I feel fortunate to have experienced and benefitted from his unique, special, and gentle genius.
Thanks to Mark Dahmke for the CC-licensed head & shoulders of John, which replaced the group shot and now also graces the infobox of John's draft Wikipedia page.
I knew John only from our annual meetings at Asilomar. Like many AMW graybeards, John never disappointed with an amazing story that I would be hearing for the first time.
His dedication to assisting a mutual friend during her rehabilitation from a stroke was yet another example of his many virtues.
The question of how many 8051s have been made is interesting. Among the observations:
- While the 8051 itself is no longer an Intel product, it is rumored that inside every x86 is an 8051 that does initial chip configuration.
- John estimated a decade ago that 1E10 had been made.
- Many other companies manufacture 8051s.
- 8051s are embedded in many very high-volume products, for example flash cards.
Comments with more information on this topic would be welcome.
- Many other companies manufacture 8051s.
Indeed, and included in that list is Zilog, who offer Z51F flash MCUs
The 8051 is undergoing something of a resurgence in Asia, with many offerings from China/Korea/Taiwan, and at prices/sizes intel could never have imagined....
I have seen part codes for SOT23-6 8051 variants, tho actual physical parts seem elusive.
The newest STC STC8F/8A/8H series are an example of not just clones, but of engineering enhancements too.
These parts use a wide opcode fetch & decode, to result in cycle times intel could never have imagined.
Not quite your grandfather's 8051, but they still talk the same language.
Expert opinion is that "rumored that inside every x86 is an 8051 that does initial chip configuration." is false.
In 1998 John wrote:
"Since its 1980 introduction, the 8051 and its derivatives have shipped about two billion units world-wide (according to DataQuest), and the production rate keeps growing, with nearly 300 million units shipped in 1996 alone."
I haven't found a citation for John's 1E10 claim ten years ago, but I remember him saying that.
I distinctly remember John discussing with relish how he got the opcodes for OR to the Accumulator and AND to the Accumulator to be "ORL" and "ANL"
That is priceless re: those opcodes. That is certainly consistent with his "The Z-8 sucks eggs" portion of the comments that appear in his example code in the Intel 1983 Microcontroller Handbook. (See the posting within the blog for this.)
I distinctly remember John discussing with relish how he got the opcodes for OR to the Accumulator and AND to the Accumulator to be "ORL" and "ANL"
Given the preceding 8048 family already used "ORL" and "ANL" mnemonics, it is not clear how much 'effort' would have been required, if any at all ?
Here's another paper from John's pioneering work in automotive control systems:
Designing Reliable Software for Automotive Applications, Barry Yarkoni and John Wharton, SAE Transactions, Vol. 88, Section 1: 790003–790266 (1979), pp. 856-859. The abstract is:
"The use of microcomputers in automotive applications has placed new requirements on programmers. Programmers must protect their software against flaws in the hardware system in which it is operating. Various techniques for writing "fail-safe software" have been developed, and are discussed in this paper."
John's first AMW talk was titled "Microprocessor-Controlled Carburetion," and it was perhaps an expansion on this 1979 paper which included the sentence "Recalibrate absolute references (such as throttle reference point, closed-loop carburetor midpoint, etc.) whenever practical."
Unknown, how about identifying the paper in question? With no identification, it might or might not be the paper I described in the previous comment. "this paper" isn't adequate.
Searching https://patents.google.com/ to confirm Brian Berg's discovery of John's three patents I found another paper John co-authored, A computer-controlled multichannel micropipetter from 1978. The abstract is:
"A multichannel micropipetter was developed capable of pipetting as little as 1 μl with a reproducibility of better than ±2% and an accuracy of ±0.5%. The micropipetter consists of a precision syringe to which 13 individually valved fluid channels are connected as a bundle of segments spreading out radially from the tip of the syringe to pinch valves and further to fluid interfaces consisting of steel tubing sections for uptake or dispensing of fluid. A stepping motor drives the piston of the measuring syringe by means of a precision screw. Motor and valves are under computer control. Low dead volume (internal volume, ca. 1 μl/channel; external volume, 0.3 μl/cm of tubing), and the absence of internal valving parts ensure low cross-conamination (ca. 0.1%). These features together with the versatility provided by the large number of independent channels and the automatic operation make the instrument suitable for pipetting multicomponent mixtures in the general biochemistry laboratory (for enzyme kinetics and complex reactions) as well as in specialized routine applications (clinical diagnostics and radioimmunoassay)."
John and I first met while I worked at Intel in the Southeast Region as an FAE (Field Application Engineer), or “Microprocessor Evangelist” starting in 1975. In my territory, we had a few early automotive accounts. Bendix in Newport News, VA developed an 8048-based fuel-injection system for Cadillac, and Chrysler Automotive Electronics in Huntsville, AL had developed the “lean-burn” system and was working (along with some other manufacturers) on feedback carburetors. I spent a lot of time with the Chrysler folks, and John was instrumental in working on this design, which became the basis for the paper we wrote. We worked far more closely together starting in 1978 when Intel moved me to Santa Clara to be the Manager of Automotive Applications. We developed a 16-bit enhancement to the 8051 design called the 8061 for real-time control and specifically for the Ford EEC-IV engine control system. A modified commercial version was sold as the 8096. They were the first microprocessors with high speed on-board A/D converters.
The car with the huge breadboard running it (that has been referred to in some posts) was actually a breadboard of the 8061, and first successfully ran a car around the Ford test track in Detroit in 1979. The system was in virtually every Ford produced from 1983 to 1994 and continued production through the ‘90s.
BTW – John’s reference to the calibration requirement was a very tricky engineering problem which he helped solve. The oxygen sensor was not analog – it was on/off output, and you had to intentionally go in and out of adjustment to get the sensor to fire. Compounding the challenge was the time delay for the exhaust to hit the sensor (in the tailpipe) which varied based on the RPM and other factors like temperature.
John's obituary has appeared in the San Jose Mercury News.
John is a named inventor on the following three US patents:
1) 6643755: Cyclically sequential memory prefetch, priority date 20 Feb 2001.
2) 6799264: Memory accelerator for ARM processor pre-fetching multiple instructions from cyclically sequential memory partitions, priority date 20 Feb 2001.
3) 7290119: Memory accelerator with two instruction set fetch path to prefetch second set while executing first set of number of instructions in access delay to instruction cycle ratio, priority date 20 Feb 2001.
Allison Marsh's Coded for Cuteness: How the Furby Conquered Hearts and Minds takes off from the Computer History Museum's acquisition of three Furbies and their source code. She links to Sam Battle's Furby Organ, which lets you experience the sound of 44 Furbies, about half as many as were in the box.
David, thank you for your recent efforts on behalf of John Wharton. I attended the AMW several times during the 1980s, where I promoted an organization called the Computer History Association of California, a precursor of the Computer Museum History Center. I have many reasons to remember, not only John, but Mary Eisenhart and Tom Rolander, who command my respect and influence some of my decisions to this day. Again, thanks. Kip Crosby
Gosh, Kip - your posting has revived a very old thread. I remember you well, and we miss seeing you at AMW. I led the remembrances portion of AMW this year's workshop, which honored 7 who had passed - including Jim Warren. Brian Berg
Post a Comment