Archive for December, 2017

December 19th, 2017 ~ by admin

Chip of the Day: TRW MPY-16AJ – Making Multiplication Manageable

TRW MPY16AJ – 1978

In Primary School students are tasked with memorizing their multiplication tables.  Taking the time to manually calculate 6×5 is much slower than simply committing the result to memory.  This allows more complex math to be processed quicker as the students skills develop.  Typically this is limited to numbers up to 12×12, resulting in 144 results to ‘store.’  In computing the same can be done.  A ROM can be used as a lookup table for multiplication.  The problem is it does not scale well.  Handling 4×4-bit multiplication requires a 256×8 ROM (2m+n addresses and m+n outputs). This could be handled by a many ROMs available in the 1970’s.  Anything more than 4-bits though was simply not possible.  This gave rise to the need for multipliers to calculate the result.

TRW MPY16AJ – Large Heatsink affixed to package to dissipate its 5W

This was a problem TRW set out to rectify in 1976.  TRW LSI Products was formed in the 1960’s to commercialize the transistor products that had been developed by Pacific Semiconductors, a division of TRW.  It was James Buie who invented the TTL logic gate in 1961 while working for TRW.  TTL went on to become the logic standard throughout the 1970’s and 80’s.   TRW was involved in aerospace, helping design planes, satellites, and missiles, fields that required processing of signals data, what became known as Digital Signal Processing (DSP).  In the 1980’s processors were designed to handle this, such as the TI TMS320 series, but in the 1970’s it had to be done with discrete components.  DSP systems had several needed blocks, Fast ADCs, ALUs, and multipliers.  TRW invented fast ADCs to handle the inputs, and ALUs were available such as AMDs Am2901 or even the TTL series 74181s.  Multipliers however were not widely available, especially for large bit-widths.

MPY-16 die

TRW’s first multiplier was a custom device to work with their own avionics processing system.  It was made on a Bipolar process, and multiplexed the entire product, using around 40 pins total (the entire product was multiplexed with the operands).  It could handle a multiply in 330ns worst case.  Interestingly yields of the device were considered ‘excellent’ at 3 working devices per wafer (out of 19 per wafer (most likely a 2″ wafer)).  Today, yields like that would be completely unacceptable.

TRW designed the MPY-16AJ as a brute-force 16×16 multiplier.  It was designed on a Bipolar process with around 3600 gates.  It implements a series of AND gates and CARRY-SAVE-ADDERS to implement the multiplication.  There are faster methods, but they come at the cost of complexity and power draw.  As designed the the MPY-16AJ dissipates 5 Watts while handling a signed (2’s complement) multiplication in a worse case 230ns).  They MPY16 was packaged in a large 64-pin package to limit the # of pins that had to be multiplexed.  The lower 16-bits of the product are multiplexed with one of the operands.  This is acceptable as in many applications the upper 16-bits of the product are sufficient accuracy.  The 64-pin package allowed for not less multiplexing, but also a much larger surface for heat dissipation.  A heatsink was also affixed to the package as well.

Micron (Russia) 1802VR5 – MPY16HJ Clone made in 1992

Later versions of the MPY-16 added support for unsigned multiplication as well (the MPY16H) and became the standard for 16-bit multipliers.  Compatible multipliers were made by Analog Devices (ADSP1016, 40-50ns at 150mW) and LOGIC LMU16/216) in CMOS, by Weitek (WTL1516/A/B, 50-100ns at 0.9-1.8W) in NMOS, by Synertek (SY66016 100ns at 1.5W) in HMOS, by AMD (Am29516 38ns at 4W) in ECL, as well as many others.  These were implemented internally with different processes, and different multiplier algorithms but externally they all mimicked the standard TRW MPY16J and served as the basis of many signal processing and high end math computers.  As a testament to their usefulness, the MPY16 was also copied by the USSR as the 1802VR5.  The TRW MPY16 was last made in the mid-1980’s but its clones continued to be made into the 1990’s.  Today its functions can be handled by any DSP, CPU or even coded into a FPGA, but for a time, the MPY16 multiplied the efficiency of many processing systems.

December 7th, 2017 ~ by admin

CPU of the Day: Hitachi HD6801S0PJ – Automotive 6801

Hitachi HD6801S0PJ – 1982 Automotive Spec 6801

The original Motorola MC6801 was released in 1977, built on a 5.1u NMOS process with 35,000 transistors (some sources say 25,000, which may be the ‘active’ transistor sites).  One of the very first customers was General Motors, you can read more about that in last years article on the 6801.  Hitachi was the primary second source for Motorola, primarily to supply the Japanese market, but they also competed with Motorola in the US market as well.  Hitachi released their version of the 6801 in 1980, with full production commencing in 1981.  It was made on a 3-micron NMOS process and was available in both a 1MHz speed (HD6801S0) and 1.25MHz (HD6801S5).  Around this time (1982) Hitachi was also transitioning their part numbering system.  Originally these parts were HD468xx… which was a bit confusing so they dropped the ‘4’.  For several years in the early 1980’s it is not uncommon to find parts with either, or both part numbers on them.

The pictured Hitachi HD6801S0P in interesting for a couple reasons.  The A00 denoted the ROM code for the 2K of onboard ROM.  A00 means that it is unprogrammed.  This would be useful for testing the 6801 with an external EPROM etc.  The ‘J’ on the package denotes that this device is a industrial/automotive spec part with an increased temperature range, in this case -40-85C.  Hitachi date codes are different from other manufacturers but are relatively simple.  The code 2E1 denotes the first week (1) of May (E) in 1982 (2).

Hitachi marked with both old and new part numbers
HD46800DP and HD6800P – dated 3F1 – First week of June 1983

Year* Month** Week
8 – 1978 A – January 1 – Week 1
9 – 1979 B – February 2 – Week 2
0 – 1980 C – March 3 – Week 3
1 – 1981 D – April 4 – Week 4
2 -1982 E – May 5 – Week 5
3 – 1983 F – June
4 – 1984 G – July
5 – 1985 H – August
6 – 1986 J – September
7 – 1987 K – October
8 – 1988 L – November
9 – 1989 M – December

*Years repeat, so 0 is used from 1980 and 1990
** ‘I’ is skipped to avoid confusion with the number ‘1’

What is perhaps more interesting is what came with this CPU when the museum got it.  Its often hard to figure out what a CPU/MCU was used in, or what it was for, its provenance.  This 6801 offers some help.  It came in an original Hitachi box, with a copy of a fax from Hitachi in Japan to the Hitachi sales office in the USA.  The fax denotes that these are qualification samples, automotive spec, and for a particular customer.  That customer is Chrysler (the automotive company now owned by Fiat).

Fax from Hitachi Japan stating use of the HD6801 samples

Also included on the fax is an original Japanese date stamp (June 1982 (Showa year 57)) .  These 6801s were fresh off the production line, having been made only a few weeks earlier.   The fax states these are for Chrysler in Huntsville, AL. with a reminder that they are “Not for Detroit” (where most of Chrysler production was.  That is an interesting addition, and important, as Chrysler did (it closed in 2011) have a very large presence in Huntsville, AL.  Huntsville is known as Rocket City, home of the Redstone Arsenal, where a large amount of US rocket, missile, and space engineering have taken place.  It was also the home of Chrysler Electronics (as well as most all of Chrysler’s military and space programs.  It was Chrysler who built the Saturn 1 and Saturn 1B upper stages for the NASA Apollo program.  Chrysler Electronics also built much of the Grown system electronics for the Apollo program as well as vehicle testing equipment for the M1 tank, the M2/3 Bradley and a host of other military programs.

Chrysler SERV – Space Shuttle Concept

Chrysler also proposed the Single-stage Earth-orbital Reusable Vehicle (SERV) during the design phase of what became the Shuttle program.

In the early 1970’s electronic use in cars was growing rapidly, leading Chrysler to greatly expand their presence in Huntsville.  These 6801s were likely for testing for cars, though it is unclear if Chrysler actually used the 6801 in their vehicles as ECUs from the mid-80’s all seem to be running the 6803 and 6805 MCUs.  Maybe if I find an early 80’s Chrysler I’ll tear out the ECU and find out.