Let's pick up where we left off in our rampage through POPs, with
Chapter Three, Storage. This is an important chapter, so we'll
spend some time here. Once we've introduced some concepts associated
with this chapter, we'll resume our more rapid perusal of POPs for
the following chapters.
Let's begin with the concept of "main storage". Checking the Index, we
see pages associated with this term. Unfortunately, none of these
pages seem to define the term "main storage". Let's speculate about what
this term might mean. Since the word "main" qualifies the word "storage",
one might be led to believe there are "non-main" kinds of storage.
Sadly, POPs is not much help here. This has always bothered me.
The term "main storage" appears in numerous places in IBM documentation,
so a good definition would be helpful.
Having spent some time in the field, I have an intuitive sense of what
"main storage" means. For purposes of this tutorial, I will invent a
definition for it, and distinguish it from a term I will make up,
"supplemental storage".
Defining Memory, Bits, Bytes, and Pages
Let's begin with the definition of memory.
Memory is a specialized kind of electronic circuit with the ability to
retain binary values called "bits".
Memory is physically packaged in several forms, but most resemble rows of "chips".
Several memory circuits may be present in our S/370 system, but they all
appear as a unified sequence of bits, bytes, and pages. We define these
terms below.
Memory is comprised of units called "bits". A bit is a portion of a memory
circuit which has the ability to retain a binary value of zero or one.
In the early days of computing, each bit was constructed of a physical "core"
around which were wrapped wires used to pass voltage to each bit. Depending
upon how this voltage was passed, the bit entered the zero or one state.
Although the term is now obsolete, you will sometimes see references to
"core memory" which is merely a reference to this old memory construction
technique.
We will not further concern ourselves with either the electronic or physical
details of memory.
In the S/370 architecture, a bit containing a zero value is sometimes
said to be "off", while a bit containing a one value is sometimes said
to be "on".
Memory bits can be viewed to occur in consecutive sequence.
Below, we number the first eight memory bits using standard S/370 notation
(starting at zero on the left, identified as BIT 0 below):
BIT BIT BIT BIT BIT BIT BIT BIT
0 1 2 3 4 5 6 7 ...
We can continue numbering BITs up to the maximum number physically installed
in the S/370 hardware, which quickly gets boring.
The sequential collection of the first eight memory bits are commonly identified
as a "byte", specifically BYTE 0 (again using standard S/370 notation).
The sequential collection of the next eight memory bits are also identified
as a byte, in this case BYTE 1, and so forth until all bytes have been numbered.
BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE
0 1 2 3 4 5 6 7 ...
The reason we are numbering memory is that we frequently wish to
refer to a specific bit or byte. We use the number we have assigned
to the bit or byte to accomplish this reference.
Each of the bytes in memory possess an attribute called an "address".
Each byte's address is simply the number we assigned above, which uniquely
identifies the byte. Memory addresses begin at zero and increase in
whole number (integer) increments up to some maximum amount.
POPs describes the memory address attribute in the "Storage Addressing"
section of Chapter Three.
The S/370 system may have several memory chips installed, to a usual
maximum of 16 times 1024 times 1024 BYTEs (16,777,216 BYTEs).
Having aggregated 8 bits into a byte, we can aggregate 4096 bytes into
a "page". Each page of memory may also be numbered as demonstrated in
the diagram below.
PAGE PAGE PAGE PAGE PAGE PAGE PAGE PAGE
0 1 2 3 4 5 6 7 ...
We now have three different ways of numbering memory: by bit, by byte,
and by page. You will almost always see memory referred to by its
byte address, but the other numbering techniques are occasionally used
as well.
It should be noted that the S/370 architecture imposes restrictions
on which bits may be considered to reside in a byte, and which bytes
may be considered to reside in a page. POPs mostly covers these restrictions
in the "Integral Boundaries" section of Chapter 3, as well as introducing
the concepts of halfword, fullword, and doubleword. Our definition of
these terms appears below.
Storage Types
Main storage is the memory attached to the CPU that programs executing
in the S/370 processor may access using byte addresses. Such bytes
are composed of eight bits, each bit having the ability to retain a value of
zero or one.
Main storage is similar to the "Number Line" to which you were introduced
in Kindergarten or First Grade; it starts at address zero and runs up through
the maximum attached storage address.
Supplemental storage is the memory attached to the CPU that programs executing
in the CPU may access using other facilities than byte addresses. Examples
of supplemental storage are the PSW, registers (GPRs, FPRs, and CRs), and storage keys.
Typically there are specific instructions provided for manipulating each type of
supplemental storage.
There are substantially fewer supplemental storage locations than
main storage locations.
Storage Contents
Main storage is used to contain data. This data can be numeric (in various
formats such as binary, decimal, or floating point), character (typically in
the EBCDIC character set), or S/370 machine instructions.
Depending on the instructions used to manipulate main storage, it is possible to
treat each of these categories as another; for instance characters can be treated
like numbers, and so forth.
One final comment on storage contents: the S/370 architecture defines a portion
of main storage for its own use. This storage is frequently called "low storage",
since it occupies physical Page Zero in a single processor system. We'll return
to the subject of low storage when we discuss interrupts.
Before we leave this section, I recommend you glance through the entire chapter.
Storage is a fairly broad subject, and to discuss it in more detail than we have
would seriously bog down our survey of POPs. We'll have to return to the subject
at a later time.
Next: Control
Having briefly discussed storage, we now turn our attentions to the next of
the main subject matters in POPs: control.