The following message is a courtesy copy of an article
that has been posted to bit.listserv.ibm-main,alt.folklore.computers as well.


[EMAIL PROTECTED] (Ted MacNEIL) writes:
> I've seen the 'S' stand for service, storage, & system, over the last
> 28 years, so I have given up.
> The 'S' stands for 's'.

it started out as common segment area ... when it originally was a
single segment. this was the transition from svs to mvs and required
some place for applications to pass parameters to subsystems (running in
different virtual address space) using pointer passing
paradigm. however, it quickly got out of hand ... and became multiple
common segments.

recent posts with discussion of evoluation of mvs, common segments,
dual-address space feature on 3081, and access registers
http://www.garlic.com/~lynn/2008c.html#35 New Opcodes
http://www.garlic.com/~lynn/2008d.html#69 Regarding the virtual machines
http://www.garlic.com/~lynn/2008e.html#14 Kernels

here is posting with MVS APAR/PTF 0267587 from 1983 ... for running MVS
Guest under VM ... when there was a problem with "common segments" bit
on 3090 ...
http://www.garlic.com/~lynn/2002m.html#0

common segment bit was added to virtual memory hardware table segment
table entry definition. i have done a q&d html conversion of the old
gcard ios3270 (green card with additional info done in ios3270 format):
http://www.garlic.com/~lynn/gcard.html#13

370 table look aside buffer (TLB) implementations were STO-associative
... i.e. every hardware translation entry was associated with specific
virtual address space (determine by its segment table origin address).

if you did a special case operation for an installation running a
(single) MVS operating system ...  it was possible to imagine
customizing improved hardware thruput ... even if it didn't conform to
"official" 370 architecture ... but tailoring the hardware operation for
exactly how MVS happened to be using the hardware.

In the case of the common segment(s) ... the identical same segments
appeared in every virtual address space (at least if you were only
running a single MVS operating system on the bare hardware). That
resulted in huge number of duplicate TLB entries ... since there were
huge number of different applications (from their virtual address
spaces) referencing locations in the common segment(s). Even if they
were the same exact location ... since they origianted from different
virtual address spaces ... they would have different (duplicate) entries
in the TLB (associated with the specific STO/virtual address space that
the operation occured in).

The 370 segment table entry hardware table (see gcard DAT reference) was
updated to define a bit meaning "common segment". If TLB was processing
a virtual address associated with a segment having the "C" bit turned on
... rather than associating the TLB entry with a specific virtual
address space ... the TLB entry would be flagged as associated with the
Common Segment(s). The straight-forward implementation only works if
there is one and only one set of common segments across the whole
infrastructure.

current principles of operation reference for segment-table entries:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/dz9zr003/3.11.2.2?DT=20040504121320

from above:

Common-Segment Bit (C): Bit 59 controls the use of the
translation-lookaside-buffer (TLB) copies of the segment-table entry and
of the page table which it designates. A zero identifies a private
segment; in this case, the segment-table entry and the page table it
designates may be used only in association with the segment-table origin
that designates the segment table in which the segment-table entry
resides. A one identifies a common segment; in this case, the
segment-table entry and the page table it designates may continue to be
used for translating addresses corresponding to the segment index, even
though a different segment table is specified. However, TLB copies of
the segment-table entry and page table for a common segment are not
usable if the private-space control, bit 55, is one in the
address-space-control element used in the translation or if that
address-space-control element is a real-space designation. The
common-segment bit must be zero if the segment-table entry is fetched
from storage during a translation when the private-space control is one
in the address-space-control element being used; otherwise, a
translation-specification exception is recognized.

... snip ... 

----------------------------------------------------------------------
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