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 H. Wharton by Mark Dahmke
CC-BY-SA 4.0

Oblique Perspective

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.

The red Porsche 944

John's prize 944
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:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
Source
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?"

Damn! 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."

"You 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 designed EEC-3!"

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:
While 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 late 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.

The 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.

Autonomous Vehicles

In 1988 Bruce Koball and John published A test vehicle for Braitenberg control structures. The abstract reads:
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. 
Koball & Wharton, Figure 2
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.

John's 15 Minutes Of Fame

Goal-Oriented Design Pays Off!
John was the subject of Reinvent the Wheel? This Software Engineer Deconstructs It, a 1999 New York Times profile by Katie Hafner. It includes this example of goal-oriented design:
In 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.

It 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.
John relived this experience for KPIX-TV on May 14, 2015.

A Crate of Furbies

Katie Hafner's profile of John included this section on Furby:
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.

Harold Evans' They Made America;

Sir Harold Evans's book They Made America: From the Steam Engine to the Search Engine: Two Centuries of Innovators has a chapter (pg 402 on) about Gary Kildall and CP/M, based almost entirely on John's work for an abortive biography. Sir Harold spoke about the book at the 31st AMW in 2005 (Motto: Never Trust a Computer Workshop Over 30!).

Source
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 "rip-off". 
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.

Update 1: Here is the video Brian Berg linked to in this comment, with John talking about Gary Kildall at the dedication ceremony of the IEEE Milestone for CP/M.

Update 2: One of John's Easter Eggs

The Wikipedia page for the Intel MCS-51 has as Reference 4:
John Wharton: Using the Intel MCS-51 Boolean Processing Capabilities Application Note AP-70, May 1980, Intel Corporation.
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:

15 comments:

Unknown said...

David,

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)

bwcase said...

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.

David. said...

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.

David. said...

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.

PCBusr said...

- 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.

David. said...

Expert opinion is that "rumored that inside every x86 is an 8051 that does initial chip configuration." is false.

David. said...

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.

George Leroy Tyrebyter said...

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"

PCBusr said...

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 ?

David. said...

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."

Unknown said...

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."

David. said...

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.

David. said...

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)."

David. said...

John's obituary has appeared in the San Jose Mercury News.

David. said...

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.