Yes.  I think that you did.

I can not address of FLEX-ES handles it, but I suspect that it performs in a
manner similar to Hercules.

Hercules has code that it executes for each instruction that it simulates.
So yes, it calls a simulation routine for each instruction.  It is
efficient, but not as efficient as a translation scheme.

As I understand it from the filing, PSI actually performs a just-in-time
translation of the IBM instructions into equivalent native Itanium code.

Now it is of course that case that translation of some of the instructions
will generate multiple Itanium instructions or even involve calls to native
Itanium subroutines.

Look at it this way.  As instruction processing moves through the IBM code,
a test is made to determine if Itanium code has been generated for the next
sequential instruction.  If yes, execution simply falls through into the
JIT-generated Itanium code.  If no, control is passed to a JIT compilation
procedure, which takes the new instruction, or preferably as many
instructions as can be reasonably identified up to the end of the current
page (4K), and generates native Itanium code.  Control is then returned to
the point form which the JIT compilation procedure was called and execution
continues.

If an exception is raised, the appropriate mapping is made back to the
native IBM storage address.  The user does not see the underlying Itanium
code.  The user sees the IBM code, which is retained for
reference/data/debugging.

Also, if a page change occurs due to a store, I/O operation, etc., Itanium
instructions mapped from that page would be marked invalid, and
retranslation would occur as necessary.

But the critical point is that IBM alleges that PSI is translating licensed
IBM executable object code into executable object code for another hardware
platform.  This is what is prohibited by IBM licensing agreements.

Now some will say that this is merely the difference between apples and
oranges.  IBM does not see it that way.  Nor for that matter do I.

John P Baker
Software Engineer



Maybe so, but although I am a software developer I have a good 
understanding of the hardware platforms, and I don't quite understand 
the distinction between simulator and emulator, in this context.

Are you saying that Flex/Hercules calls simulation routines for each 
zSeries instruction, while the PSI does the same except that it makes 
use of Itanium instructions which are similar?   I can't believe your 
statement that PSI is translating object code.  That would mean that 
every piece of code loaded, from NUC, to LPA, to LINKLIB, to user 
libraries, would have to be translated in memory to Itanium-compatible 
code.   This would make debugging impossible.  What would show up in a dump?

Did I misinterpret your statement?

-- 
Bruce A. Black
Senior Software Developer for FDR
Innovation Data Processing 973-890-7300
personal: [EMAIL PROTECTED]
sales info: [EMAIL PROTECTED]
tech support: [EMAIL PROTECTED]
web: www.innovationdp.fdr.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to