[comp.arch] ``Strange instructions''

roger@wraxall.inmos.co.uk (Roger Shepherd) (07/12/90)

Specialised, weird instructions, of ``interest'' to only a small
number of people and which are not generated by a compiler, can be of
great importance.

FACT    - when designing the transputer instruction set in the early 80s
          we took care to ensure that both multi-length values and
          floating point values could be manipulated efficiently on
          our integer processors. 

        * Our first 16-bit processor, the T212, managed 0.18 MWhets
          when running at 20 Mhz

        - the addition of 3 instructions doubled the speed of
          32-bit floating point on the 32-bit integer transputer

        * Our first 32-bit INTEGER processor, the T414, managed 0.7 MWhets
          at -20.

          (For comparison, a 286/287 at 10 Mhz, manages 0.3 MWhets,
          so at 20Mhz this processor/co-processor combination
          runs at about the same speed as our integer processor).

          I suspect that less than 20 people in the world make
          direct use of some of these ``weird'' instructions but they
          benefit everyone who uses floating point on these processors.

Also, remember that computer architectures are not designed only to
support the implementation of workstations. In embedded applications,
where the majority of microprocessors are used, the speeding up of a
single operation can be very significant. Thus we may see instructions
in place which (i) count number of bits set in a word, (ii) perform a
CRC step, (iii) perform saturating arithmetic.  These ``weird''
features can be very economically important. What's more thy can be
exposed in programming languages, by use of ``predefined functions'' (or
whatever). I guess that such techniques can take you to within 10% of
what you might achieve if such ``weirdnesses`` were fully incorporated
into a programming language - and that is probably good enough if the
weirdness is buying you a factor of 2 or 3.

Finally, yesterday's unimportant operation is tomorrow's bottleneck. My
tip for the top question of the 90`s is ``and how fast is your floating
point divide?''.
Roger Shepherd, INMOS Ltd   JANET:    roger@uk.co.inmos 
1000 Aztec West             UUCP:     ukc!inmos!roger or uunet!inmos-c!roger
Almondsbury                 INTERNET: roger@inmos.com
+44 454 616616              ROW:      roger@inmos.com OR roger@inmos.co.uk

zenith-steven@cs.yale.edu (Steven Ericsson Zenith) (07/14/90)

Well Roger, how fast is your floating point divide? On the H1 that is.

.                                                                        .
Steven Ericsson Zenith              *            email: zenith@cs.yale.edu
Department of Computer Science      |            voice: (203) 432 1278
Yale University 51 Prospect Street New Haven CT 06520 USA.
     "All can know beauty as beauty only because there is ugliness"