IBM System/360 architecture: Difference between revisions

Content deleted Content added
convert to efn
Features: Clarify floating point register numbers.
 
(6 intermediate revisions by 4 users not shown)
Line 79:
| style="border-style: none;" |
{| class="wikitable" style="font-size:75%"
|+ Floating Point Registers 0-, 2, 4 and 6
|-
| colspan=34 style="border-style: none;" | <br>
Line 319:
|
{| class="wikitable mw-collapsible autocollapse"
|+ style="text-align: left; font-size:95%" | {{nowrap|Program Mask}}
! Bit
! Meaning
Line 453:
The architecture<ref name=A22-6821-7/>{{rp|pages=77–83}} defines 5 classes of [[interrupt]]ion. An interruption is a mechanism for automatically changing the program state; it is used for both synchronous{{efn|The S/360 literature does not use the terms fault or [[Trap (computing)|trap]]}} and [[asynchrony (computing)|asynchronous]] events.
 
{| class="wikitable" collapsiblestyle="text-align: right;"
|-
! rowspan="2" | Interruption class !! colspan="2" | Old PSW !! colspan="2" | New PSW
! rowspan="2" | Priority
|-
! Interruption classhex !! Olddec PSW<br!! />hex dec !! New PSW<br />hex dec
! align=right valign=top | Priority
|-
| [[#Input/Output interruption|Input/Output]]{{sfn|PoOps|pp=78-79}} || 38&nbsp;&nbsp;&nbsp; || 56 || 78&nbsp;&nbsp;120 || align=right120 || 4
|-
| [[#Program interruption|Program]]{{sfn|PoOps|pp=79–80.1}} || 28&nbsp;&nbsp;&nbsp; || 40 || 68&nbsp;104 || align=right104 || 2
|-
| [[#Supervisor Call interruption|Supervisor Call]]{{sfn|PoOps|pp=80.1–81}} || 20&nbsp;&nbsp;&nbsp; || 32 || 60&nbsp;&nbsp;&nbsp;96 || align=right96 || 2
|-
| [[#External interruption|External]]{{sfn|PoOps|pp=81–82}} || 18&nbsp;&nbsp;&nbsp; || 24 || 58&nbsp;&nbsp;&nbsp;88 || align=right88 || 3
|-
| [[#Machine Check interruption|Machine Check]]{{sfn|PoOps|pp=82–83}} || 30&nbsp;&nbsp;&nbsp; || 48 || 70&nbsp;&nbsp;112 || align=right112 || 1
|}
 
Line 693 ⟶ 695:
* {{anchor|IBM_Byte_Mux}}A '''byte multiplexer channel''' is capable of executing multiple '''CCW'''s concurrently; it is normally used to attach slow devices such as card readers and telecommunications lines. A byte multiplexer channel could have a number of selector subchannels, each with only a single subchannel, which behave like low-speed selector channels.
* {{anchor|IBM_Sel}}A '''selector channel''' has only a single subchannel, and hence is only capable of executing one channel command at a time. It is normally used to attach fast devices that are not capable of exploiting a block multiplexer channel to suspend the connection, such as magnetic tape drives.
* {{anchor|IBM_Blk_Mux}}A '''block multiplexer channel''' is capable of concurrently running multiple channel programs, but only one at a time can be active. The control unit can request suspension at the end of a channel command and can later request resumption. This is intended for devices in which there is a mechanical delay after completion of data transfer, e.g., for seeks on moving-head DASD. The block multiplexer channel was a late addition to the System/360 architecture; early machines had only byte multiplexer channels and selector channels. The block multiplexer channel wasis an optional feature only on the models 85 and 195. The block multiplexor channel wasis also available on the later [[IBM System/370|System/370]] computers.
 
Conceptually peripheral equipment is attached to a S/360 through ''control units'', which in turn are attached through channels. However, the architecture does not require that control units be physically distinct, and in practice they are sometimes integrated with the devices that they control. Similarly, the architecture does not require the channels to be physically distinct from the processor, and the smaller S/360 models (through 360/50) have integrated channels that [[Cycle stealing|steal cycles]] from the processor.
Line 701 ⟶ 703:
Control units are assigned an address "capture" range. For example, a CU might be assigned range 20-2F or 40-7F. The purpose of this is to assist with the connection and prioritization of multiple control units to a channel. For example, a channel might have three disk control units at 20-2F, 50-5F, and 80-8F. Not all of the captured addresses need to have an assigned physical device. Each control unit is also marked as High or Low priority on the channel.
 
Device selection progresses from the channel to each control unit in the order they are physically attached to their channel. At the end of the chain the selection process continues in reverse back towards the channel. If the selection returns to the channel then no control unit accepted the command and SIO returns Condition Code 3. Control units marked as High Priority check the outbound CUU to be within their range. If so, then the I/O wasis processed. If not, then the selection wasis passed to the next outbound CU. Control units marked as Low Priority check for inbound (returning) CUU to be within their range. If so, then the I/O is processed. If not, then the selection is passed to the next inbound CU (or the channel). The connection of three controls unit to a channel might be physically -A-B-C and, if all are marked as High then the priority would be ABC. If all are marked low then the priority would be CBA. If B was marked High and AC low then the order would be BCA. Extending this line of reasoning then the first of N controllers would be priority 1 (High) or 2N-1 (Low), the second priority 2 or 2N-2, the third priority 3 or 2N-3, etc. The last physically attached would always be priority N.
 
There are three storage fields reserved for I/O; a double word I/O old PSW, a doubleword I/O new PSW and a fullword ''Channel Address Word'' ('''CAW'''). Performing an I/O normally requires the following:
Line 754 ⟶ 756:
* {{Anchor|Channel end|CE}}'''[[#CSW_Channel_end|Channel end]]'''{{sfn|PoOps|p=115}} indicates that the device has completed the data transfer for a channel command. There may also be an [[#Incorrect length|Incorrect length]] indication if the Count field of the CCW is exhausted, depending on the value of the [[#CCW-SuppressLengthIndication|Suppress-Length-Indication]] bit.
* {{Anchor|Device end|DE}}'''[[#CSW_Device_end|Device end]]'''{{sfn|PoOps|p=115}} indicates that the device has completed an operation and is ready to accept another. DE may be signalled concurrently with [[#Channel en|CE]] or may be delayed.
* {{Anchor|Unit check|UC}}'''[[#CSW_Unit_check|Unit check]]'''{{sfn|PoOps|pp=115–116}} indicates that the device or control unit has detected an unusual conditionscondition and that details may be obtained by issuing a Sense command.
* {{Anchor|Unit exception|UE}}'''[[#CSW_Unit_exception|Unit exception]]'''{{sfn|PoOps|p=116}} indicates that the device has detected an unusual condition, e.g., end of file.
 
Line 971 ⟶ 973:
* '''{{anchor|Initial_Program_Load}}Initial Program Load''' (IPL){{sfn|PoOps|p=123}} is a process for loading a program when there isn't a loader available in storage, usually because the machine was just powered on or to load an alternative operating system.<ref name=A22-6821-7/>{{rp|page=123}} This process is sometimes known as [[Booting]].
 
:: As part of the IPL facility the operator has a means of specifying a 12-bit{{efn|name=ChanNum}} device address, typically with three dials as shown in the operator controls drawing. When the operator{{efn|Or an equivalent automated facility.}} selects the ''Load'' function, the system performs a ''System Reset'', sends a Read IPL{{efn|Read with all modifier bits zero}} channel command to the selected device in order to read 24 bytes into locations 0-23 and causes the channel to begin fetching ''CCW''s at ___location 8; the effect is as if the channel had fetched a CCW from ___location 0 with a length of 24, andan address of 0 and the flags containing Command Chaining + Suppress Length Indication. At the completion of the operation, the system stores the I/O address in the halfword at ___location 2 and loads the PSW from ___location 0.
 
:: Initial program loading is typically done from a tape, a card reader, or a disk drive. Generally, the operating system was loaded from a disk drive; IPL from tape or cards was used only for diagnostics or for installing an operating system on a new computer.