From: Quadibloc on
On Apr 10, 10:56 am, n...(a)cus.cam.ac.uk (Nick Maclaren) wrote:
> But to say that horizontal microcode and the control processors
> that used what-was-later-to-be-called-VLIW  instruction sets were not
> VLIW because the term hadn't been coined by then is the the sort of
> terminological politics with which I will have no truck.  If the term
> VLIW means anything useful in computer architecture, those were VLIW.

I am sympathetic with that point of view, since obviously language is
meant to be a useful instrument of communication.

But if the things called VLIW really were architecturally different in
significant ways from their predecessors, then it would make sense to
draw the distinction. And if that which was called VLIW was introduced
for a specific reason, noting that fact is valid from a historical
perspective.

Disentangling the historical perspective from the engineering
perspective can be challenging at times, I will admit.

John Savard
From: Ripunjay Tripathi on
On Apr 9, 11:28 pm, Quadibloc <jsav...(a)ecn.ab.ca> wrote:
> On Apr 8, 12:45 pm, Ripunjay Tripathi <ripunjay.tripa...(a)gmail.com>
> wrote:
>
> > Different Implementations of the same VLIW architecture may not be
> > binary-compatible with each other.
>
> > I am looking for explaination on the above line.
>
> I guess they mean something different by "the same architecture" than
> people usually do when talking about computers. So, to know what that
> line meant, one would have to know the context - in the book where you
> read that sentence, what meaning did they give to an architecture?
>
> Was it a specific kind of machine, like "an IBM 360" or "a 386-
> compatible microprocessor", or was it more general, for example, "a
> parallel machine", "NUMA", "decoupled microarchitecture", and so on.
> Different implementations of the Von Neumann "architecture" certainly
> exist that are not binary-compatible.
>
> So I can't give you an answer, since I'm not looking at the book you
> saw that line in.
>
> John Savard


VLIW has fixed length instructions- tightly coupled to hardware
resources - In case the hardaware resources exceed in number as asked
in the instruction, even if the basic VLIW architecture is same the
program will not work.
Am I right ??

Even I dont think this number of resources (FUs) are open to
programmer. So the architecture may be same but pragram will not work.


Regards,
Ripunjay Tripathi
From: Quadibloc on
On Apr 11, 2:46 am, Ripunjay Tripathi <ripunjay.tripa...(a)gmail.com>
wrote:

> VLIW has fixed length instructions- tightly coupled to hardware
> resources - In case the hardaware resources exceed in number as asked
> in the instruction, even if the basic VLIW architecture is same the
> program will not work.
> Am I right ??
>
> Even I dont think this number of resources (FUs) are open to
> programmer. So the architecture may be same but pragram will not work.

The problem comes if the instruction asks for more instructions than
the hardware has, so if the resources change from one chip or machine
to another, the instruction format has to change from one machine to
the other.

But I think that you did know that, even if you phrased it backwards.

John Savard
From: already5chosen on
On Apr 10, 1:46 pm, "HT-Lab" <han...(a)ht-lab.com> wrote:
> "Erik Trulsson" <ertr1...(a)student.uu.se> wrote in message
>
> news:47fd4e18(a)news.midgard.homeip.net...
>
>
>
> > Ripunjay Tripathi <ripunjay.tripa...(a)gmail.com> wrote:
> >> Different Implementations of the same VLIW architecture may not be
> >> binary-compatible with each other.
>
> >> I am looking for explaination on the above line.
>
> > There is nothing special about VLIW in that regard (depending slightly on
> > exactly which definition of 'architecture' and 'binary-compatible' you
> > are using.)
>
> > (Exercise 1: Define exectly what you mean by 'architecture')
>
> > (Exercise 2: Write a small program which will behave differently
> > depending
> > on if it is running on an Intel 8086 or an 8088.
>
> can this be done, and if so how?
>
> Thanks,
> Hanswww.ht-lab.com
>

First hint: look at the size of instruction queue.

From: HT-Lab on

<already5chosen(a)yahoo.com> wrote in message
news:e67ecb39-0ecd-49a8-802a-0df4834db1fc(a)f63g2000hsf.googlegroups.com...
>> > (Exercise 2: Write a small program which will behave differently
>> > depending
>> > on if it is running on an Intel 8086 or an 8088.
>>
>> can this be done, and if so how?
>>
>> Thanks,
>> Hanswww.ht-lab.com
>>
>
> First hint: look at the size of instruction queue.

Found it thanks,

Hans
www.ht-lab.com

; Is It an 8086?
; Returns ax==0 for 8088, ax==1 for 8086
; Code takes advantage of the 8088's 4-byte prefetch queues and 8086's
; 6-byte prefetch queues. By self-modifying the code at a location exactly 5
; bytes away from IP, and determining if the modification took effect,
; you can differentiate between 8088s and 8086s.
IsItAn8086 proc
mov ax,cs ; es == code segment
mov es,ax
std ; Cause stosb to count backwards
mov dx,1 ; dx is flag and we'll start at 1
mov di,OFFSET EndLabel ; di==offset of code tail to modify
mov al,090h ; al==nop instruction opcode
mov cx,3 ; Set for 3 repetitions
REP stosb ; Store the bytes
cld ; Clear the direction flag
nop ; Three nops in a row
nop ; provide dummy instructions
nop
dec dx ; Decrement flag (only with 8088)
nop ; dummy instruction--6 bytes
EndLabel:
nop
mov ax,dx ; Store the flag in ax
ret ; Back to caller
IsItAn8086 endp