From: John L on
>> VLIW isn't just wide microcode with multiple functional units. It's
>> also the compiler techniques with trace scheduling and speculative
>> execution that let it keep large numbers of units busy.
>
>That doesn't explain how I can look at a piece of hardware and
>definitively state that it is or is not VLIW. I think it should
>be possible to do that without looking at the software.

Well, like I said, try programming it by hand, and if you can't, it
must be VLIW.

R's,
John


From: Quadibloc on
Eric Smith wrote:
> That doesn't explain how I can look at a piece of hardware and
> definitively state that it is or is not VLIW. I think it should
> be possible to do that without looking at the software.
..
Someone else, in a reply to one of my posts, has claimed that the
System/360 Model 85 and its successors had capabilities I did not
suspect a computer executing conventional instructions by means of
microcode could have.

So I may be mistaken in some of my thinking about this topic.

But I would think that there is a very simple definition of VLIW.
Instructions explicitly code for superscalar operation.

Note that the Cyberplus from Control Data had multiple functional
units which could all be busy at once, but did not have a large number
of fast data memories that could be used as sources and destinations
in the same instruction, so it functioned as a *dataflow*
architecture.

The term VLIW has since been applied to such things as a DSP from
Texas Instruments that fetches eight instructions at once, with these
instructions having a bit that indicates they can be executed in
parallel with the preceding instruction. That may not have been what
VLIW used to mean, but since it does permit superscalar operation, I
think I have to accept that it is legitimate. And that the Itanium is
also a VLIW machine.

In the Model 85, the 370/165 and 370/168, and the 3033, even with
progressive major improvements in the microcode, the I unit and E unit
were overlapped with each other. They weren't superpipelined like a
360/91, 360/195 or 370/195.

So although they had horizontal microcode, the I unit was still
executing microinstructions for one instruction at a time. Possibly,
the microinstructions had portions that had a delayed effect, but
given the conventional instructions specified one operation at a time,
I don't see how you could make even a 3033 do one add per cycle *and*
one multiply per cycle, at least as long as you don't count the two
adds for address arithmetic, for any length of time.

Actually, even with the high-speed multiply feature, it only retired
12 bits of the multiplier at a time - just like the 360/91, from
whence it came - but keeping *multiple functional units* fully busy on
computations related to the problem isn't possible in that kind of
classic microcoded architecture, no matter how horizontal the
microcode.

No more than one instruction - one basic operation - per cycle.

Unless you count adding the exponent and multiplying the mantissa of a
floating-point number in parallel - which the 85, and even the 65, did
do - as superscalar. I wouldn't.

Of course, had the 85 been used to execute microcode programs instead
of 360 programs, then perhaps it could have been called a VLIW
machine, because it could be off doing a 32-bit integer multiply *and*
a character translate or an edit instruction at the same time in that
case. Even the model 65 or the model 50 could be VLIW, if you consider
the arithmetic ALU and the character ALU (not capable of addition to
speed FP on the 50) as the two functional units capable of separate
handling.

But the 360 didn't come with "translate characters and do a vector
multiply at the same time" instructions.

John Savard

From: Del Cecchi on

"Quadibloc" <jsavard(a)ecn.ab.ca> wrote in message
news:1179113537.089454.4260(a)n59g2000hsh.googlegroups.com...
> Eric Smith wrote:
>> That doesn't explain how I can look at a piece of hardware and
>> definitively state that it is or is not VLIW. I think it should
>> be possible to do that without looking at the software.
> .
> Someone else, in a reply to one of my posts, has claimed that the
> System/360 Model 85 and its successors had capabilities I did not
> suspect a computer executing conventional instructions by means of
> microcode could have.
>
> So I may be mistaken in some of my thinking about this topic.
>
> But I would think that there is a very simple definition of VLIW.
> Instructions explicitly code for superscalar operation.
>
> Note that the Cyberplus from Control Data had multiple functional
> units which could all be busy at once, but did not have a large number
> of fast data memories that could be used as sources and destinations
> in the same instruction, so it functioned as a *dataflow*
> architecture.
>
> The term VLIW has since been applied to such things as a DSP from
> Texas Instruments that fetches eight instructions at once, with these
> instructions having a bit that indicates they can be executed in
> parallel with the preceding instruction. That may not have been what
> VLIW used to mean, but since it does permit superscalar operation, I
> think I have to accept that it is legitimate. And that the Itanium is
> also a VLIW machine.
>
> In the Model 85, the 370/165 and 370/168, and the 3033, even with
> progressive major improvements in the microcode, the I unit and E unit
> were overlapped with each other. They weren't superpipelined like a
> 360/91, 360/195 or 370/195.
>
> So although they had horizontal microcode, the I unit was still
> executing microinstructions for one instruction at a time. Possibly,
> the microinstructions had portions that had a delayed effect, but
> given the conventional instructions specified one operation at a time,
> I don't see how you could make even a 3033 do one add per cycle *and*
> one multiply per cycle, at least as long as you don't count the two
> adds for address arithmetic, for any length of time.
>
> Actually, even with the high-speed multiply feature, it only retired
> 12 bits of the multiplier at a time - just like the 360/91, from
> whence it came - but keeping *multiple functional units* fully busy on
> computations related to the problem isn't possible in that kind of
> classic microcoded architecture, no matter how horizontal the
> microcode.
>
> No more than one instruction - one basic operation - per cycle.
>
> Unless you count adding the exponent and multiplying the mantissa of a
> floating-point number in parallel - which the 85, and even the 65, did
> do - as superscalar. I wouldn't.
>
> Of course, had the 85 been used to execute microcode programs instead
> of 360 programs, then perhaps it could have been called a VLIW
> machine, because it could be off doing a 32-bit integer multiply *and*
> a character translate or an edit instruction at the same time in that
> case. Even the model 65 or the model 50 could be VLIW, if you consider
> the arithmetic ALU and the character ALU (not capable of addition to
> speed FP on the 50) as the two functional units capable of separate
> handling.
>
> But the 360 didn't come with "translate characters and do a vector
> multiply at the same time" instructions.
>
> John Savard

I wonder how few square millimeters of 65nm silicon it would take to
reproduce the 360/86 cpu netlist, including cache and everything. maybe
3 or 4?
>


From: Anne & Lynn Wheeler on

Quadibloc <jsavard(a)ecn.ab.ca> writes:
> Actually, even with the high-speed multiply feature, it only retired
> 12 bits of the multiplier at a time - just like the 360/91, from
> whence it came - but keeping *multiple functional units* fully busy on
> computations related to the problem isn't possible in that kind of
> classic microcoded architecture, no matter how horizontal the
> microcode.
>
> No more than one instruction - one basic operation - per cycle.

it would appear that the original question/issue is being changed
in real time????

so now with a great deal of such confusion and obfuscation then take
itanium wide-word and call it VLIW ... unless somebody happen chance to
port one of the i86 370 emulators to itanium ... and used it to (also)
emulate (non superscaler) 370 instruction ... and then forever forth it
would no longer be permissable to claim itanium wide-word was VLIW.

the original issue was whether or not the horizontal microcode
capability used in various highend 370 processors, various mainframe
channel units, and mainframe disk controllers, could be considered
equivalent to VLIW with its highly parallel execution.

the original issue had nothing at all to do with specific machines where
horizontal microcode was used to emualtion 370 instructions .... and/or
whether or not those 370 instructions emulated appeared to be
superscaler.

then there was description of horizontal microcode which meets the
definition.

now it appears that if the horizontal microcode was used to emulate 370
opcodes ... and if the emulated 370 execution wasn't superscaler
.... then the parallel, superscaler operations performed by the
horizontal microcode couldn't meet the definition of VLIW.

what happens if the same/similar horizontal microcode for implementing
highly parallel operations other than emulation of 370 instruction
.... for instance integrated channel i/o operation and/or disk controller
units doing highly parallel operation?????

So the situation now appears that if horizontal microcode was used to
emualte 370 instructions ... and the 370 instructions didn't meet
somebody's definition of parallel, superscaler ... then the horizontal
microcode capability that was used in the implementation ... also
couldn't be considered parallel, superscaler.

However, if the same exact microcode engine ... with the same exact
horizonal microcode instructions capability was used to implement highly
parallel operations that weren't 370 instruction execution emulation
.... but other types of parallel superscaler operations ... would it be
allowed that operational horizontal micrcode be VLIW??????

at which point ... would it then be that horizontal microcode would be
equivalent to VLIW when it was used in a program to do something other
than 370 instruction execution ... but the same horizontal microcode
engine/instructions would not be equivalent to VLIW when the horizontal
micrcode program was emulating 370 instructions.

To some extent the limitation on the execution of 370 superscaler
.... wasn't so much a limitation of the superscaler capability of the
horizontal microcode ... but a limitation of the hardware resources that
were available to the horizontal micrcode programer for the emulation of
370 instructions.

i.e. my understanding was that the original issue was whether or not the
horizontal microcode used in these various hardware engines were VLIW
.... as opposed to whether or not a specific application (370 instruction
emulation) implemented with horizontal micrcode might be considered
VLIW.

so now with a great deal of such confusion and obfuscation then take
itanium wide-word and call it VLIW ... unless somebody happen chance to
port one of the i86 370 emulators to itanium ... and used it to (also)
emulate (non superscaler) 370 instruction ... and then forever forth it
would no longer be permissable to claim itanium wide-word was VLIW.

re:
http://www.garlic.com/~lynn/2007j.html#84 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#95 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#96 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#97 VLIW pre-history
http://www.garlic.com/~lynn/2007k.html#1 VLIW pre-history
From: Anne & Lynn Wheeler on
Anne & Lynn Wheeler <lynn(a)garlic.com> writes:
> so now with a great deal of such confusion and obfuscation then take
> itanium wide-word and call it VLIW ... unless somebody happen chance to
> port one of the i86 370 emulators to itanium ... and used it to (also)
> emulate (non superscaler) 370 instruction ... and then forever forth it
> would no longer be permissable to claim itanium wide-word was VLIW.

re:
http://www.garlic.com/~lynn/2007k.html#6 VLIW pre-history

some itanium references possibly being considered VLIW

Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip
Architecture
http://www.hpl.hp.com/news/2001/apr-jun/itanium.html

Itanium is Intel's future
http://www.infoworld.com/article/04/09/10/37OPcurve_1.html

Analysis and Characterization of Intel Itanium Instruction Bundles for
Improving VLIW Processor Performance
http://portal.acm.org/citation.cfm?id=1136267

about a decade ago we had a look at some of the issues of porting i86
370 emulator to itanium ... and while itanium may be considered vliw
.... the 370 emulated execution on itanium wasn't vliw &/or
superscaler.

re:
http://www.garlic.com/~lynn/2007j.html#84 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#95 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#96 VLIW pre-history
http://www.garlic.com/~lynn/2007j.html#97 VLIW pre-history
http://www.garlic.com/~lynn/2007k.html#1 VLIW pre-history
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Prev: Multiple Clock Domains on UP3
Next: Fast string functions