The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Friday, March 21, 2008

Ruby Lee of HP did NOT inspire my work on P6 SIMD / MMX

Minor annoyance.

I was clicking around Ruby Lee's website, looking for graduate students to hire for a summer internship, when I saw this:

  • But that's not to mention a third innovation that Lee brought to the industry. She also led the way in creating a set of multimedia instructions that build directly into the core native language of the computer the ability to handle multimedia of all types -- images, voice, animation. _I_n_t_e_l_ later adopted the idea, which consumers saw when the company began advertising that its chips had multimedia-accelerating "MMX" technology. Now essentially all computers use the technique, allowing multimedia to be an everyday part of computing.

(1) This could be interpreted as saying that Ruby Lee takes credit for inventing SIMD instruction sets, leading to _I_n_t_e_l_ implementing MMX. Or (2) that she was one of many pioneers in that field.

Statement (2) is probably true.

Statement (1) is false. I was there, at the start of MMX, and earlier, when we were calling it P6 SIMD. I have several personal claims to fame in this regards: (a) I am responsible for MMX being 64 bits rather than 32 bits; (b) I am responsible for MMX being placed in the floating point register file, as a way to get around OS context switch issues; (c) I was told to destroy the slides for P6 SIMD, after P6 decided not to do it, but instead I sent the data to Israel, which helped kick off MMX; (d) after the i750 video chip was cancelled, driving back in a car with Bob Dreyer, we decided that we had to do something like P6 SIMD or MMX, because the special video chip was gone. This led to the FP register state. (e) I handed out pieces of swiss cheese at the wrapup dinner for MMX, protesting the irregularity of the ISA. I should have had those pieces of cheese bronzed.

With 100% certainty, I can say that I was never aware of anything Ruby Lee or HP were doing during the development of MMX.

HP was so far out of my field of vision that I don't know when HP shipped multimedia. I vaguely remember email from Konrad Lai about it about a year before MMX shipped - as P6 was being wrapped up (without MMX), as P55C was locked and loaded(with MMX), and as P6C (with MMX) was ready to follow P6 swiftly out the door.

Why were we later, when I suspect that we actually started first? Mainly, the usual: the company is a big slow dinosaur (although capable of reacting really quickly when under threat).

Fred Pollack was the manager who encouraged me to work on P6 SIMD. If Fred knew about HP's work, maybe HP deserves credit. However, Ruby's NSF bio says she worked on it 1992-1996 - P6 SIMD may actually have started earlier than HP's work on SIMD multimedia.

I personally credit the i750 video processor guys for the SIMD instruction set architecture. All I did was show how to integrate it into a general purpose out-of-order processor. And protest the stupid restrictions that were placed on it - we should have had all combinations of {8,16,32,64} {unsigned saturation, saturation, no saturation} {+,-,*,<<,>>}, etc. as well as less regular combinations such as unsigned+signed giving unsigned, unsigned+signed giving signed.


This isn't intended to be a criticism of Ruby. Puffery is to be expected in university brag letters, etc.

No comments: