Path: utzoo!attcan!uunet!husc6!uwvax!rutgers!mcnc!ecsvax!urjlew
From: urjlew@ecsvax.uncecs.edu (Rostyk Lewyckyj)
Newsgroups: comp.arch
Subject: Re: Superoptimiser.
Message-ID: <5346@ecsvax.uncecs.edu>
Date: 5 Jul 88 14:06:44 GMT
References: <28200172@urbsdc> <13157@apple.Apple.COM>
Organization: UNC Educational Computing Service
Lines: 27

In article <13157@apple.Apple.COM>, baum@Apple.COM (Allen J. Baum) writes:
> >>Gosh!  You guys aren't thinking big enough.  How about multiple
> >>parallel pipelines to compute all the various instruction threads
> >>in parallel and just keep the results of the one that is actually
> >>taken?  
> >
> >The IBM 360 model 97 (I always get the model number wrong;
> >anyway, one of the early 360s) did this.
> 
> I don't believe that any model of IBM 360 or 370 (including /91, /92, or /195)
> ever executed multiple threads and threw away the unused one. The did have

If I remember correctly, the machine would decode the addresses of
the instructions on both sides of the branch, and then decode the
addresses of their operands, and begin fetching these. As soon as    
the decision on which side of the branch would be taken was decided
the machine would abort, throw away, the fetching for that thread.
No actual instruction executions were done in parallel. i.e. if
one side of the branch was a multiply and the other an add, neither
the multiplication nor the addition would be started, just the     
operands would be sent for if possible.

-----------------------------------------------
  Reply-To:  Rostyslaw Jarema Lewyckyj
             urjlew@ecsvax.UUCP ,  urjlew@tucc.bitnet
       or    urjlew@tucc.tucc.edu    (ARPA,SURA,NSF etc. internet)
       tel.  (919)-962-9107