Brian Inglis <[EMAIL PROTECTED]> writes:
> In virtual machine environments, software versions of hardware
> approaches tends to be used instead of "creating beautiful new
> impediments to understanding" (Henry Spencer -- from #8 in "The Ten
> Commandments for C Programmers").

old post discussing how hardware address translation worked
on trout 1.5 (3090), including email from fall of '83
http://www.garlic.com/~lynn/2003j.html#42 Flash 10208

there is a reference to Birnbaum starting in early '75 on 801 project
(including split caches), i.e. 801 turned into romp, rios, power,
power/pc, etc. misc. past posts mentioning 801
http://www.garlic.com/~lynn/subtopic.html#801

and old discussion about SIE (virtual machine assist) from long
ago and far away (couple weeks short of 25years ago):

From: zzzzz
Date: 6/30/81 15:33:04

I would like to add a bit more to the discussion of SIE.  I seem to
have hit a sensitive area with my original comments.  I would have
preferred to contain this to an offline discussion, but I feel that
some of the things that have appeared in the memos require a reply.

First, let me say that all of the comments I have made have been
accurate to the best of my knowledge.  The performance data I quoted
came directly from a presentation I attended given by the VM/811
group.  The purpose of the presentation was to justify extensions to
the SIE architecture.  Since I my last writing, I have been told by
XXXXX that the numbers quoted were for MVS running under VMTOOL on the
3081.  XXXXXX mentioned that VMTOOL has some significant software
problems which are partially responsible for the poor performance.
Presumably, VM/811 would not have these problems.  This was not
pointed out at the meeting.

For many years the software and hardware groups have misunderstood
each other.  Engineers who knew nothing about software could not
understand why it was necessary to make their hardware do certain
things.  Likewise, programmers who knew nothing about software could
not understand why the engineers could not make the hardware do the
things they wanted.  Traditionally, microcode has been done by
engineers because a thorough understanding of the hardware is
necessary in order to write microcode.  In recent years, this has
become a problem as more complex software functions have been placed
into microcode.  In my department, we have tried to remedy this
problem by hiring people with programming experience as
microprogrammers.

The statement that millions of dollars have been spent writing
microcode in order to avoid putting a few ten cent latches into the
hardware is completely false.  The truth is that changes have often
been made to the microcode to AVOID SPENDING MILLIONS OF DOLLARS by
putting a change in hardware.  In the world of LSI and VLSI, there
is no longer such a thing as a "ten cent latch."  Once a chip has
been designed, it is very expensive to make even the smallest
change to it.

Microcode offers a high degree of flexibility in an environment that
is subject to change, especially if one has a writable control store.
When a change is necessary, it can often be had for "free" by making a
change to the microcode and sending out a new floppy disk, whereas it
might cost millions of dollars to make an equivalent change to the
hardware.  While the performance of the microcode may not be as good
as the hardware implementation, the overall cost/performance has
dictated that it is the method of choice.

As I pointed out in a previous writing, what works well or does not
work well on one machine says absolutely nothing about the performance
of that item on another machine.  XXXXX seems to have completely
missed this critical point, since he expects a 158-like performance
boost from SIE on machines which are nothing like the 158 in their
design.

SIE is a poor performer on the 3081 for several reasons.  One reason
is that the 3081 pages its microcode.  Each time it is necessary to
enter or exit SIE, a large piece of microcode must be paged in to
carry out this function.  This is rather costly in terms of
performance.  A performance gain could be realized if the number of
exit/entry trips could be reduced.  One way of doing this would be to
emulate more instructions on the assumption that it takes less to
emulate them than it does to exit and re-enter emulation mode.  This
thinking is completely valid for the 3081, but is not necessarily
relevent when it comes to other machines, such as TROUT.

TROUT does not page its microcode, and therefore the cost of exiting
and re-entering emulation mode is less.  The thinking behind the
changes to the SIE architecture should be re-examined when it comes to
TROUT because the data upon which the changes were based is not
necessarily valid.  This is why I have asked that the extensions to
SIE be made optional.  This would allow machines that do have
performance problems to implement the extensions, while machines that
do not have problems could leave them out and use their control store
for more valuable functions.

The extensions that are being proposed are not at all trivial.  It may
seem like a simple matter to emulate an I/O instruction, but such is
not the case.  To appreciate what is involved, one must have a
detailed understanding of just how the CPU, SCE and and Channels work.

Other machines do indeed have an easier time when it comes to
implementing some of these assists.  That is because they are rather
simple machines internally, not because their designers had more
foresight when they designed the machines.  The cycle time of TROUT is
only slightly faster than the 3081, yet TROUT is much faster in terms
of MIPS.  This performance comes from the highly overlapped design of
the processor.  This makes for a much more complex design.  Sometimes
you pay dearly for this, like when it comes to putting in complex
microcode functions.

TROUT has never treated SIE as "just another assist."  SIE has been a
basic part of our machine's design since the beginning. In fact, we
have chosen to put many functions into hardware instead of microcode
to pick up significant performance gains.  For example, the 3081 takes
a significant amount of time to do certain types of guest-to-host
address translation because it does them in microcode, while TROUT
does them completely in hardware.

... snip ...

nomenclature in the above with "guest" refers to an operating system
running in a virtual machine.

...

with regard to the above comment about virtual machines and I/O
instruction ... part of the issue is translating the I/O channel
program and fixing the related virtual pages in real memory .. since
the real channels run using real addresses from the channel programs.
the channel programs from the virtual address space have all been
created using the addresses of the virtual address space. this
wasn't just an issue for virtual machine emulation ... but OS/VS2
also has the issue with channel programs created by applications
running in virtual address space.

...

3090 responded to Amdahl's hypervisor support with PR/SM, misc. past
posts mentioning PR/SM (and LPARs)
http://www.garlic.com/~lynn/2000c.html#76 Is a VAX a mainframe?
http://www.garlic.com/~lynn/2002o.html#15 Home mainframes
http://www.garlic.com/~lynn/2002o.html#18 Everything you wanted to know about
z900 from IBM
http://www.garlic.com/~lynn/2002p.html#44 Linux paging
http://www.garlic.com/~lynn/2002p.html#46 Linux paging
http://www.garlic.com/~lynn/2002p.html#48 Linux paging
http://www.garlic.com/~lynn/2003.html#56 Wild hardware idea
http://www.garlic.com/~lynn/2003n.html#13 CPUs with microcode  ?
http://www.garlic.com/~lynn/2003o.html#52 Virtual Machine Concept
http://www.garlic.com/~lynn/2004c.html#4 OS Partitioning and security
http://www.garlic.com/~lynn/2004c.html#5 PSW Sampling
http://www.garlic.com/~lynn/2004m.html#41 EAL5
http://www.garlic.com/~lynn/2004m.html#49 EAL5
http://www.garlic.com/~lynn/2004n.html#10 RISCs too close to hardware?
http://www.garlic.com/~lynn/2004o.html#13 Integer types for 128-bit addressing
http://www.garlic.com/~lynn/2004p.html#37 IBM 3614 and 3624 ATM's
http://www.garlic.com/~lynn/2004q.html#18 PR/SM Dynamic Time Slice calculation
http://www.garlic.com/~lynn/2004q.html#76 Athlon cache question
http://www.garlic.com/~lynn/2005.html#6 [Lit.] Buffer overruns
http://www.garlic.com/~lynn/2005b.html#5 Relocating application architecture
and compiler support
http://www.garlic.com/~lynn/2005c.html#56 intel's Vanderpool and virtualization
in general
http://www.garlic.com/~lynn/2005d.html#59 Misuse of word "microcode"
http://www.garlic.com/~lynn/2005d.html#74 [Lit.] Buffer overruns
http://www.garlic.com/~lynn/2005h.html#13 Today's mainframe--anything to new?
http://www.garlic.com/~lynn/2005h.html#19 Blowing My Own Horn
http://www.garlic.com/~lynn/2005k.html#43 Determining processor status without
IPIs
http://www.garlic.com/~lynn/2005m.html#16 CPU time and system load
http://www.garlic.com/~lynn/2005p.html#29 Documentation for the New
Instructions for the z9 Processor
http://www.garlic.com/~lynn/2006e.html#15 About TLB in lower-level caches
http://www.garlic.com/~lynn/2006h.html#30 The Pankian Metaphor

...

misc. past posts mentioning CCWTRANS (cp/67 routine that created
"shadow" channel program copies of what was in the virtual address
space, replacing all virtual addresses with "real" addresses, for
example initial prototype of OS/VS2 was built by crafting hardware
translation into mvt and hacking a copy of CP67's CCWTRANS into mvt):
http://www.garlic.com/~lynn/2000.html#68 Mainframe operating systems
http://www.garlic.com/~lynn/2000c.html#34 What level of computer is needed for
a computer to Love?
http://www.garlic.com/~lynn/2001b.html#18 Linux IA-64 interrupts [was Re:
Itanium benchmarks ...]
http://www.garlic.com/~lynn/2001i.html#37 IBM OS Timeline?
http://www.garlic.com/~lynn/2001i.html#38 IBM OS Timeline?
http://www.garlic.com/~lynn/2001l.html#36 History
http://www.garlic.com/~lynn/2002c.html#39 VAX, M68K complex instructions (was
Re: Did Intel Bite Off More Than It Can Chew?)
http://www.garlic.com/~lynn/2002g.html#61 GE 625/635 Reference + Smart Hardware
http://www.garlic.com/~lynn/2002j.html#70 hone acronym (cross post)
http://www.garlic.com/~lynn/2002l.html#65 The problem with installable
operating systems
http://www.garlic.com/~lynn/2002l.html#67 The problem with installable
operating systems
http://www.garlic.com/~lynn/2002n.html#62 PLX
http://www.garlic.com/~lynn/2003b.html#0 Disk drives as commodities. Was Re:
Yamhill
http://www.garlic.com/~lynn/2003g.html#13 Page Table - per OS/Process
http://www.garlic.com/~lynn/2003k.html#27 Microkernels are not "all or
nothing". Re: Multics Concepts For
http://www.garlic.com/~lynn/2004.html#18 virtual-machine theory
http://www.garlic.com/~lynn/2004c.html#59 real multi-tasking, multi-programming
http://www.garlic.com/~lynn/2004d.html#0 IBM 360 memory
http://www.garlic.com/~lynn/2004g.html#50 Chained I/O's
http://www.garlic.com/~lynn/2004m.html#16 computer industry scenairo before the
invention of the PC?
http://www.garlic.com/~lynn/2004n.html#26 PCIe as a chip-to-chip interconnect
http://www.garlic.com/~lynn/2004n.html#54 CKD Disks?
http://www.garlic.com/~lynn/2004o.html#57 Integer types for 128-bit addressing
http://www.garlic.com/~lynn/2005b.html#23 360 DIAGNOSE
http://www.garlic.com/~lynn/2005b.html#49 The mid-seventies SHARE survey
http://www.garlic.com/~lynn/2005b.html#50 [Lit.] Buffer overruns
http://www.garlic.com/~lynn/2005f.html#45 Moving assembler programs above the
line
http://www.garlic.com/~lynn/2005f.html#47 Moving assembler programs above the
line
http://www.garlic.com/~lynn/2005p.html#18 address space
http://www.garlic.com/~lynn/2005q.html#41 Instruction Set Enhancement Idea
http://www.garlic.com/~lynn/2005s.html#25 MVCIN instruction
http://www.garlic.com/~lynn/2005t.html#7 2nd level install - duplicate volsers
http://www.garlic.com/~lynn/2006.html#31 Is VIO mandatory?
http://www.garlic.com/~lynn/2006.html#38 Is VIO mandatory?
http://www.garlic.com/~lynn/2006b.html#25 Multiple address spaces
http://www.garlic.com/~lynn/2006f.html#5 3380-3390 Conversion - DISAPPOINTMENT
http://www.garlic.com/~lynn/2006i.html#33 virtual memory
http://www.garlic.com/~lynn/2006j.html#5 virtual memory

--
Anne & Lynn Wheeler | http://www.garlic.com/~lynn/

Reply via email to