fbpx
Wikipedia

IBM System/360 architecture

The IBM System/360 architecture is the model independent architecture for the entire S/360 line of mainframe computers, including but not limited to the instruction set architecture. The elements of the architecture are documented in the IBM System/360 Principles of Operation[1][2] and the IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information manuals.[3]

System/360
DesignerIBM
Bits32-bit
IntroducedApril 7, 1964; 59 years ago (1964-04-07)
DesignCISC
TypeRegister-Register
Register-Memory
Memory-Memory
EncodingVariable (2, 4 or 6 bytes long)
BranchingCondition code, indexing, counting
EndiannessBig
Page sizeN/A, except for 360/67
OpenYes
Registers
General-purpose16× 32-bit
Floating point4× 64-bit

Features edit

IBM S/360 registers
General Registers 0-15

Two's complement value
0 31
Floating Point Registers 0-6

S Biased exponent Mantissa
0 1 7 8 31

Mantissa (continued)
32 63
S/360 PSW[4]

Chan.
Mask
I
O
E
X
Key A M W P Interruption Code
0 1 2 4 5 6 7 8 11 12 13 14 15 16 31

ILC CC Program
Mask
Instruction Address
32 33 34 35 36 39 40 63
S/360 PSW abbreviations
Bits Field Meaning
0-5 Channel Masks for channels 0-5
6 IO I/O Mask for channels > 5
7 EX External Mask
8-11 Key PSW key
12 A ASCII mode for decimal arithmetic
13 M Machine-check mask
14 W Wait state
15 P Problem state
16-31 IC Interruption Code[5]
32-33 ILC Instruction-Length Code[6]
34-35 CC Condition Code
36-39 PM
Program Mask
Bit Meaning
36 Fixed-point overflow
37 Decimal overflow
38 Exponent underflow
39 Significance
40-63 IA Instruction Address
  • IBM documentation numbers the bits from high order to low order; the most significant (leftmost) bit is designated as bit number 0.

The System/360 architecture provides the following features:

  • 16 32-bit general-purpose registers
  • 4 64-bit floating-point registers
  • 64-bit processor status register (PSW), which includes a 24-bit instruction address
  • 24-bit (16 MB) byte-addressable memory space
  • Big-endian byte/word order
  • A standard instruction set, including fixed-point binary arithmetic and logical instructions, present on all System/360 models (except the Model 20, see below).
    • A commercial instruction set, adding decimal arithmetic instructions, is optional on some models, as is a scientific instruction set, which adds floating-point instructions. The universal instruction set includes all of the above plus the storage protection instructions and is standard for some models.
    • The Model 44 provides a few unique instructions for data acquisition and real-time processing and is missing the storage-to-storage instructions. However, IBM offered a 'Commercial Instruction Set" feature that ran in bump storage and simulated the missing instructions.
    • The Model 20 offers a stripped-down version of the standard instruction set, limited to eight general registers with halfword (16-bit) instructions only, plus the commercial instruction set, and unique instructions for input/output.
    • The Model 67 includes some instructions to handle 32-bit addresses and "dynamic address translation", with additional privileged instructions to provide virtual memory.[7]

Memory edit

Memory (storage) in System/360 is addressed in terms of 8-bit bytes. Various instructions operate on larger units called halfword (2 bytes), fullword (4 bytes), doubleword (8 bytes), quad word (16 bytes) and 2048 byte storage block, specifying the leftmost (lowest address) of the unit. Within a halfword, fullword, doubleword or quadword, low numbered bytes are more significant than high numbered bytes; this is sometimes referred to as big-endian. Many uses for these units require aligning them on the corresponding boundaries. Within this article the unqualified term word refers to a fullword.

The original architecture of System/360 provided for up to 224 = 16,777,216 bytes of memory. The later Model 67 extended the architecture to allow up to 232 = 4,294,967,296[NB 1] bytes of virtual memory.

Addressing edit

System/360 uses truncated addressing similar to that of the UNIVAC III.[8] That means that instructions do not contain complete addresses, but rather specify a base register and a positive offset from the addresses in the base registers. In the case of System/360 the base address is contained in one of 15[NB 2] general registers. In some instructions, for example shifts, the same computations are performed for 32-bit quantities that are not addresses.

Data formats edit

The S/360 architecture defines formats for characters, integers, decimal integers and hexadecimal floating point numbers. Character and integer instructions are mandatory, but decimal and floating point instructions are part of the Decimal arithmetic and Floating-point arithmetic features.

  • Characters are stored as 8-bit bytes.
  • Integers are stored as two's complement binary halfword or fullword values.
  • Packed decimal numbers are stored as 1 to 16 8-bit bytes containing an odd number of decimal digits followed by a 4-bit sign. Sign values of hexadecimal A, C, E, and F are positive and sign values of hexadecimal B and D are negative. Digit values of hexadecimal A-F and sign values of 0-9 are invalid, but the PACK and UNPK instructions do not test for validity.
  • Zoned decimal numbers are stored as 1 to 16 8-bit bytes, each containing a zone in bits 0-3 and a digit in bits 4-7. The zone of the rightmost byte is interpreted as a sign.
  • Floating point numbers are only stored as fullword or doubleword values on older models. On the 360/85[9] and 360/195[10] there are also extended precision floating point numbers stored as quadwords. For all three formats, bit 0 is a sign and bits 0-7 are a characteristic (exponent, biased by 64). Bits 8-31 (8-63) are a hexadecimal fraction. For extended precision, the low order doubleword has its own sign and characteristic, which are ignored on input and generated on output.

Instruction formats edit

Instructions in the S/360 are two, four or six bytes in length, with the opcode in byte 0. Instructions have one of the following formats:

  • RR (two bytes). Generally byte 1 specifies two 4-bit register numbers, but in some cases, e.g., SVC, byte 1 is a single 8-bit immediate field.
  • RS (four bytes). Byte 1 specifies two register numbers; bytes 2-3 specify a base and displacement.
  • RX (four bytes). Bits 0-3 of byte 1 specify either a register number or a modifier; bits 4-7 of byte 1 specify the number of the general register to be used as an index; bytes 2-3 specify a base and displacement.
  • SI (four bytes). Byte 1 specifies an immediate field; bytes 2-3 specify a base and displacement.
  • SS (six bytes). Byte 1 specifies two 4-bit length fields or one 8-bit length field; bytes 2-3 and 4-5 each specify a base and displacement. The encoding of the length fields is length-1.

Instructions must be on a two-byte boundary in memory; hence the low-order bit of the instruction address is always 0.

Program Status Word (PSW) edit

The Program Status Word (PSW)[2]: 71–72  contains a variety of controls for the currently operating program. The 64-bit PSW describes (among other things) the address of the current instruction being executed, condition code and interrupt masks.

PSW format
Bits Contents Explanation
0-7 System Mask bits 0-5: enable channels 0-5, bit 6: enable all remaining channels,[NB 3] bit 7: enable External interruptions (timer, interrupt key, and external signal)PoOps: 71 
8-11 Protection key CPU protection key to compare against storage protection keys
12 ASCII mode enable ASCII mode for packed decimal instructions, never used by IBM software[NB 4]
13 Machine checks enable Machine check interruptions
14 Wait State processor is halted, an interruption, if enabled, will cause the processor to resume executing instructions
15 Problem state enable to prevent the use of instructions reserved for supervisor state
16-31 Interruption Code code to indicate the type of interruption, inserted when the PSW is stored, during IPLoad, this is the address of the device from which the program was loadedPoOps: 77 
32-33 Instruction Length Code length in halfwords or 0 if unavailable
34-35 Condition Code see individual instructions for encoding
36-39 Program Mask bit 36: enable fixed-point overflow, bit 37: decimal overflow, bit 38: exponent underflow, bit 39: significancePoOps: 71 
40-63 Instruction Address address of next instruction, except for a program interruptions with ILC 0

Load Program Status Word (LPSW) is a privileged instruction that loads the Program Status Word (PSW), including the program mode, protection key, and the address of the next instruction to be executed. LPSW is most often used to "return" from an interruption by loading the "old" PSW which is associated with the interruption class. Other privileged instructions (e.g., SSM, STNSM, STOSM, SPKA, etcetera) are available for manipulating subsets of the PSW without causing an interruption or loading a PSW; and one non-privileged instruction (SPM) is available for manipulating the program mask.

Interruption system edit

The architecture[2]: 77–83  defines 5 classes of interruption. An interruption is a mechanism for automatically changing the program state; it is used for both synchronous[NB 5] and asynchronous events.

Interruption class Old PSW
hex dec
New PSW
hex dec
Priority
Input/OutputPoOps: 78–79  38   56 78  120 4
ProgramPoOps: 79–80.1  28   40 68 104 2
Supervisor CallPoOps: 80.1–81  20   32 60   96 2
ExternalPoOps: 81–82  18   24 58   88 3
Machine CheckPoOps: 82–83  30   48 70  112 1

There are two storage fields assigned to each class of interruption on the S/360; an old PSW double-word and a new PSW double-word. The processor stores the PSW, with an interruption code inserted, into the old PSW location and then loads the PSW from the new PSW location. This generally replaces the instruction address, thereby effecting a branch, and (optionally) sets and/or resets other fields within the PSW, thereby effecting a mode change.

The S/360 architecture defines a priority to each interruption class, but it is only relevant when two interruptions occur simultaneously; an interruption routine can be interrupted by any other enabled interruption, including another occurrence of the initial interruption. For this reason, it is normal practice to specify all of the mask bits, with the exception of machine-check mask bit, as 0 for the "first-level" interruption handlers. "Second-level" interruption handlers are generally designed for stacked interruptions (multiple occurrences of interruptions of the same interruption class).

Input/Output interruption edit

An I/O interruptionPoOps: 78–79  occurs at the completion of a channel program, after fetching a CCW with the PCI bit set and also for asynchronous events detected by the device, control unit or channel, e.g., completion of a mechanical movement. The system stores the device address into the interruption code and stores channel status into the CSW at location 64 ('40'X).

Program interruption edit

A Program interruption[2]: 16, 79–80.1  occurs when an instruction encounters one[NB 6] of 15[NB 7] exceptions; however, if the Program Mask bit corresponding to an exception is 0 then there is no interruption for that exception. On 360/65,[13]: 12  360/67[11]: 46  and 360/85[9]: 12  the Protection Exception and Addressing Exception interruptions can be imprecise, in which case they store an Instruction Length Code of 0. The Interruption code may be any of

Interruption codes for Program interruptions
old PSW bits 26-31
hex
bits 26-31
Dec Exception
0 0

Imprecise interruption[NB 6] on 360/91,[12]: 15  360/95 or 360/195[10]: 14 

1 1 OperationPoOps: 79 
2 2 Privileged operationPoOps: 79 
3 3 ExecutePoOps: 79 
4 4 ProtectionPoOps: 79 
5 5 AddressingPoOps: 79–80 
6 6 SpecificationPoOps: 80 
7 7 DataPoOps: 80 
8 8 Fixed-point overflowPoOps: 80 
9 9 Fixed-point dividePoOps: 80 
A 10 Decimal overflowPoOps: 80 
B 11 Decimal dividePoOps: 80 
C 12 Exponent overflowPoOps: 80 
D 13 Exponent underflowPoOps: 80 
E 14 SignificancePoOps: 80 
F 15 Floating-point dividePoOps: 80.1 
10 16

Segment Translation[11]: 17 [NB 7]

11 17

Page Translation[11]: 17 [NB 7]

12 18

SSM Exception[13][NB 7]

  • An operation exceptionPoOps: 79  is recognized when a program attempts to execute an instruction with an opcode that the computer does not implement. In particular, an operation exception is recognized when a program is written for an optional feature, e.g., floating point, that is not installed.
  • A privileged operation exceptionPoOps: 79  is recognized when a program attempts to execute a privileged instruction when the problem state bit in the PSW is 1.
  • An execute exceptionPoOps: 79  is recognized when the operand of an EXECUTE instruction (EX) is another EXECUTE instruction.
  • A protection exceptionPoOps: 79  is recognized when a program attempts to store into a location whose storage protect key does not match[NB 10] the PSW key, or to fetch from a fetch protected location whose storage protect key does not match the PSW key.
  • An addressing exceptionPoOps: 79–80  is recognized when a program attempts to access a storage location that is not currently available. This normally occurs with an address beyond the capacity of the machine, but it may also occur on machines that allow blocks of storage to be taken offline.
  • A specification exceptionPoOps: 80  is recognized when an instruction has a length or register field with values not permitted by the operation, or when it has an operand address that does not satisfy the alignment requirements of the opcode, e.g., a LH instruction with an odd operand address on a machine without the byte alignment feature.
  • A data exceptionPoOps: 80  is recognized when a decimal instruction specifies invalid operands, e.g., invalid data, invalid overlap.
  • A fixed-point overflow exceptionPoOps: 80  is recognized when significant bits are lost in a fixed point arithmetic or shift instruction, other than divide.
  • A fixed-point divide exceptionPoOps: 80  is recognized when significant bits are lost in a fixed point divide or Convert to Binary instruction.
  • A decimal overflow exceptionPoOps: 80  is recognized when significant digits are lost in a decimal arithmetic instruction, other than divide.
  • A decimal divide exceptionPoOps: 80  is recognized when significant bits are lost in a decimal divide instruction. The destination is not altered.
  • An exponent overflow exceptionPoOps: 80  is recognized when the characteristic in a floating-point arithmetic operation exceeds 127 and the fraction is not zero.
  • An exponent underflow exceptionPoOps: 80  is recognized when the characteristic in a floating-point arithmetic operation is negative and the fraction is not zero.
  • A significance exceptionPoOps: 80  is recognized when the fraction in a floating-point add or subtract operation is zero.
  • A floating-point divide exceptionPoOps: 80.1  is recognized when the fraction in the divisor of a floating-point divide operation is zero.

Supervisor Call interruption edit

A Supervisor Call interruptionPoOps: 80.1–81  occurs as the result of a Supervisor Call instruction; the system stores bits 8-15 of the SVC instruction as the Interruption Code.

External interruption edit

An ExternalPoOps: 81 [NB 11] interruption occurs as the result of certain asynchronous events. Bits 16-24 of the External Old PSW are set to 0 and one or more of bits 24-31 is set to 1

Interruption codes for External interruptions
PSW bit Type of external interruption

24

Timer

25

Interrupt key

26

External signal 2
Malfunction alert on 360/65[13] in Multisystem mode

27

External signal 3
System Call on 360/65[13] in Multisystem mode

28

External signal 4

29

External signal 5

30

External signal 6

31

External signal 7

Machine Check interruption edit

A Machine Check interruptionPoOps: 82–83  occurs to report unusual conditions associated with the channel or CPU that cannot be reported by another class of interruption. The most important class of conditions causing a Machine Check is a hardware error such as a parity error found in registers or storage, but some models may use it to report less serious conditions. Both the interruption code and the data stored in the scanout area at '80'x (128 decimal) are model dependent.

Input/Output edit

This article describes I/O from the CPU perspective. It does not discuss the channel cable or connectors, which have a separate article; there is a summary elsewhere and details can be found in the IBM literature[3] and in FIPS PUB 60-2.[14]

I/O is carried out by a conceptually separate processor called a channel. Channels have their own instruction set, and access memory independently of the program running on the CPU. On the smaller models (through 360/50) a single microcode engine runs both the CPU program and the channel program. On the larger models the channels are in separate cabinets and have their own interfaces to memory. A channel may contain multiple subchannels, each containing the status of an individual channel program. A subchannel associated with multiple devices that cannot concurrently have channel programs is referred to as shared; a subchannel representing a single device is referred to as unshared.

There are three types of channels on the S/360:

  • A byte multiplexer channel is capable of executing multiple CCWs 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.
  • 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.
  • 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 was an optional feature only on the models 85 and 195. The block multiplexor channel was also available on the later 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 steal cycles from the processor.

Peripheral devices are addressed with 16-bit[NB 12] addresses.,[2]: 89  referred to as cua or cuu; this article will use the term cuu. The high 8 bits identify a channel, numbered from 0 to 6,[NB 3] while the low 8 bits identify a device on that channel. A device may have multiple cuu addresses.

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 was processed. If not, then the selection was 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:

  • initializing the CAW with the storage key and the address of the first CCW
  • issuing a Start I/O (SIO) instruction that specifies the cuu for the operation
  • waiting[NB 13] for an I/O interruption
  • handling any unusual conditions indicated in the Channel Status Word (CSW)

A channel program consists of a sequence of Channel Control Words (CCWs) chained together (see below.) Normally the channel fetches CCWs from consecutive doublewords, but a control unit can direct the channel to skip a CCW and a Transfer In Channel (TIC) CCW can direct the channel to start fetching CCWs from a new location.

There are several defined ways for a channel command to complete. Some of these allow the channel to continue fetching CCWs, while others terminate the channel program. In general, if the CCW does not have the chain-command bit set and is not a TIC, then the channel will terminate the I/O operation and cause an I/O interruption when the command completes. Certain status bits from the control unit suppress chaining.

The most common ways for a command to complete are for the count to be exhausted when chain-data is not set and for the control unit to signal that no more data transfers should be made. If Suppress-Length-Indication (SLI) is not set and one of those occurs without the other, chaining is not allowed. The most common situations that suppress chaining are unit-exception and unit-check. However, the combination of unit-check and status-modifier does not suppress chaining; rather, it causes the channel to do a command retry, reprocessing the same CCW.

In addition to the interruption signal sent to the CPU when an I/O operation is complete, a channel can also send a Program-Controlled interruption (PCI) to the CPU while the channel program is running, without terminating the operation, and a delayed device-end interruption after the I/O completion interruption.

Channel status edit

These conditions are detected by the channel and indicated in the CSW.PoOps: 116–118 

  • Program-controlled interruptionPoOps: 116–117  indicates that the channel has fetched a CCW with the PCI bit set. The channel continues processing; this interruption simply informs the CPU of the channel's progress. An example of the use of Program-controlled interruption is in the "Program Fetch" function of Contents Supervision, whereby the control program is notified that a Control/Relocation Record has been read. To ensure that this record has been completely read into main storage, a "disabled bit spin", one of the few which remains in the control program, is initiated. Satisfaction of the spin indicates that the Control/Relocation Record is completely in main storage and the immediately preceding Text Record may be relocated. After relocation, a NOP CCW is changed to a TIC and the channel program continues. In this way, an entire load module may be read and relocated while utilizing only one EXCP, and possibly only one revolution of the disk drive. PCI also has applications in teleprocessing access method buffer management.
  • Incorrect lengthPoOps: 117  indicates that the data transfer for a command completed before the Count was exhausted. This indication is suppressed if the Suppress-Length-Indication bit in the CCW is set.
  • Program checkPoOps: 117  indicates one of the following errors
    • Nonzero bits where zeros are required
    • An invalid data or CCW address
    • The CAW or a TIC refers to a TIC
  • Protection checkPoOps: 117–118  indicates that the protection key in the CAW is non-zero and does not match the storage protection key.
  • Channel data checkPoOps: 118  indicates a parity error during a data transfer.
  • Channel control checkPoOps: 118  indicates a channel malfunction other than Channel data check or Interface control check.
  • Interface control checkPoOps: 118  indicates an invalid signal in the channel to control unit interface.
  • Chaining checkPoOps: 118  indicates lost data during data chaining.

Unit status edit

These conditions are presented to the channel by the control unit or device.PoOps: 113–116  In some cases they are handled by the channel and in other cases they are indicated in the CSW. There is no distinction between conditions detected by the control unit and conditions detected by the device.

  • AttentionPoOps: 113  indicates an unusual condition not associated with an ongoing channel program. It often indicates some sort of operator action like requesting input, in which case the CPU would respond by issuing a read-type command, most often a sense command (04h) from which additional information could be deduced. Attention is a special condition, and requires specific operating system support, and for which the operating system has a special attention table[NB 14] with a necessarily limited number of entries.
  • Status modifierPoOps: 113–114  (SM) indicates one of three unusual conditions
    • A Test I/O instruction was issued to a device that does not support it.
    • A Busy status refers to the control unit rather than to the device.
    • A device has detected a condition that requires skipping a CCW. A CCW with a command for which Status Modifier is possible will normally specify command chaining, in which case the SM is processed by the channel and does not cause an interruption.
A typical channel program where SM occurs is
 ... Search Id Equal TIC *-8 Read Data 
where the TIC causes the channel to refetch the search until the device indicates a successful search by raising SM.
  • Control unit endPoOps: 114  indicates that a previous control unit busy status has been cleared.
  • BusyPoOps: 114–115  indicates that a device (SM=0) or a control unit (SM=1) is busy.
  • Channel endPoOps: 115  indicates that the device has completed the data transfer for a channel command. There may also be an Incorrect length indication if the Count field of the CCW is exhausted, depending on the value of the Suppress-Length-Indication bit.
  • Device endPoOps: 115  indicates that the device has completed an operation and is ready to accept another. DE may be signalled concurrently with CE or may be delayed.
  • Unit checkPoOps: 115–116  indicates that the device or control unit has detected an unusual conditions and that details may be obtained by issuing a Sense command.
  • Unit exceptionPoOps: 116  indicates that the device has detected an unusual condition, e.g., end of file.

Channel Address Word edit

The fullword Channel Address Word[2]: 99  (CAW) contains a 4-bit storage protection key and a 24-bit address of the channel program to be started.

Channel Command Word edit

A Channel Command Word is a doubleword containing the following:

  • an 8-bit channel Command CodePoOps: 100 
  • a 24-bit addressPoOps: 100–101 
  • a 5-bit flag fieldPoOps: 99–100, 101–105 
  • an unsigned halfword Count fieldPoOps: 100–101 

CCW Command codes edit

The low order 2 or 4 bits determine the six types of operations that the channel performs;.[2]: 100, 105  The encoding is

CCW Command codes
bits Command
**** 0000 Invalid in a CCW, simulated by the processor's Test I/O (TIO) instruction
MMMM 0100 SensePoOps: 106–107 
**** 1000 Transfer in Channel (TIC)PoOps: 107–108 
MMMM 1100 Read BackwardPoOps: 105–106 
MMMM MM01 WritePoOps: 105 
MMMM MM10 ReadPoOps: 105 
MMMM MM11 ControlPoOps: 106–107 

The meaning of the high order six or four bits, the modifier bits, M in the table above, depends upon the type of I/O device attached, see e.g., DASD CKD CCWs. All eight bits are sent to and interpreted in the associated control unit (or its functional equivalent).

Control is used to cause a state change in a device or control unit, often associated with mechanical motion, e.g., rewind, seek.

Sense is used to read data describing the status of the device. The most important case is that when a command terminates with unit check, the specific cause can only be determined by doing a Sense and examining the data returned. A Sense command with the modifier bits all zero is always valid.

A noteworthy deviation from the architecture is that DASD use Sense command codes for Reserve and Release, instead of using Control.

CCW flags edit

The flags in a CCW affect how it executes and terminates.

CCW flags
bit flag effect
32 CD Chain-Data Continue operation using the storage area defined by the next CCW.PoOps: 101–103 
33 CC Chain-Command Continue with the Command in the next CCW.PoOps: 101, 103 
34 SLI[NB 15] Suppress-Length-Indication Continue channel program after count mis-match.PoOps: 99–100 
35 SKIP Skip Do not read from or write into storage.PoOps: 103–104 
36 PCI Program-Controlled-Interruption Request interruption when fetching CCW.PoOps: 104–105 

Channel Status Word edit

The Channel Status Word (CSW)[2]: 113–121  provides data associated with an I/O interruption.

CSW format
bits field
0-3 KeyPoOps: 119 
4-7 0000
8-31 Command AddressPoOps: 119 
32-47 StatusPoOps: 113–118 
32-39
Unit Status ConditionsPoOps: 113–116 
Detected by the device or control unit
32
AttentionPoOps: 113 
33
Status modifierPoOps: 113–114 
34
Control unit endPoOps: 114 
35
BusyPoOps: 114–115 
36
Channel endPoOps: 115 
37
Device endPoOps: 115 
38
Unit checkPoOps: 115–116 
39
Unit exceptionPoOps: 116 
40-47
Channel Status ConditionsPoOps: 116–118 
Detected by the channel.
40
Program-controlled interruptionPoOps: 116–117 
41
Incorrect lengthPoOps: 117 
42
Program checkPoOps: 117 
43
Protection checkPoOps: 117–118 
44
Channel data checkPoOps: 118 
45
Channel control checkPoOps: 118 
46
Interface control checkPoOps: 118 
47
Chaining checkPoOps: 118 
48-63 CountPoOps: 120 
  • The Protection Key field contains the protect key from the CAW at the time that the I/O operation was initiated for I/O complete or PCI interruptions.PoOps: 119 
  • The Command Address field contains the address+8 of the last CCW fetched for an I/O complete or PCI interruption. However, there are 9 exceptionsPoOps.: 119 
  • The Status field contains one byte of Channel status bits, indicating conditions detected by the channelPoOps,: 116–118  and one byte of Unit status bits, indicating conditions detected by the I/O unitPoOps.: 113–116  There is no distinction between conditions detected by the control unit and conditions detected by the device.
  • The Residual Count is a half word that gives the number of bytes in the area described by the CCW that have not been transferred to or from the channelPoOps.: 120  The difference between the count in the CCW and the residual count gives the number of bytes transferred.

I/O instructions edit

The S/360 has four[15] I/O instructions: Start I/O (SIO), Test I/O (TIO), Halt I/O (HIO) and Test Channel (TCH). All four are privileged and thus will cause a privileged operation program interruption if used in problem state. The B1 (base) and D1 (displacement) fields are used to calculate the cuu (channel and device number); bits 8-15 of the instructions are unused and should be zero for compatibility with the S/370.

Start I/O (SIO) edit

SIO[16] attempts to start the channel program pointed to by the CAW, using the storage protection key in the CAW.

Test I/O (TIO) edit

TIO[17] tests the status of a channel and device. It may also store a CSW, in which case it completes with condition code 1.

Halt I/O (HIO) edit

HIO[18] attempt to terminate an active channel program. It may also store a CSW, in which case it completes with condition code 1.

Test Channel (TCH) edit

TCH[19] tests the status of a channel. It does not affect the status of an active channel program and does not store a CSW,

Operator controls edit

 
operator controls

The architecture of System/360 specified the existence of several common functions, but did not specify their means of implementation. This allowed IBM to use different physical means, e.g., dial, keyboard, pushbutton, roller, image or text on a CRT, for selecting the functions and values on different processors. Any reference to key or switch should be read as applying to, e.g., a light-pen selection, an equivalent keyboard sequence.

  • System Reset sends a reset signal on every I/O channel and clears the processor state; all pending interruptions are cancelled. System Reset is not guaranteed to correct parity errors in general registers, floating point registers or storage. System Reset does not reset the state of shared I/O devices.
  • Initial Program Load (IPL)PoOps: 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.[2]: 123  This process is sometimes known as Booting.
As part of the IPL facility the operator has a means of specifying a 12-bit[NB 3] device address, typically with three dials as shown in the operator controls drawing. When the operator[NB 16] selects the Load function, the system performs a System Reset, sends a Read IPL[NB 17] channel command to the selected device in order to read 24 bytes into locations 0-23 and causes the channel to begin fetching CCWs at location 8; the effect is as if the channel had fetched a CCW with a length of 24, and 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.
  • Emergency pull switchPoOps: 124  (Emergency power off, EPO) sends an EPO signal to every I/O channel, then turns off power to the processor complex. Because EPO bypasses the normal sequencing of power down, damage can result, and the EPO control has a mechanical latch to ensure that a customer engineer inspects the equipment before attempting to power it back on.
  • Power onPoOps: 124  powers up all components of the processor complex and performs a system reset.
  • Power offPoOps: 124  initiates an orderly power-off sequence. Although the contents of storage are preserved, the associated storage keys may be lost.
  • The Interrupt keyPoOps: 124  causes an external interruption with bit 25 set in the External Old PSW.
  • The Wait lightPoOps: 124  indicates that the PSW has bit 14 (wait) set; the processor is temporarily halted but resumes operation when an interruption condition occurs.
  • The Manual lightPoOps: 124  indicates that the CPU is in a stopped state.
  • The System lightPoOps: 124  indicates that a meter is running, either due to CPU activity or due to I/O channel activity.
  • The Test lightPoOps: 124  indicates that certain operator controls are active, when certain facilities, e.g., INSTRUCTION STEP, have been used by a Diagnose instruction or when abnormal thermal conditions exist. The details are model dependent.
  • The Load lightPoOps: 124  is turned on by IPL and external start. It is turned off by loading the PSW from location 0 at the completion of the load process.
  • The Load unitPoOps: 124–125  controls provide the rightmost 11[NB 18] bits of the device from which to perform an IPL.
  • The Load KeyPoOps: 125  starts the IPL sequence.
  • The Prefix Select Key SwitchPoOps: 125  selects whether IPL will used the primary prefix or the alternative prefix.
  • The System-Reset KeyPoOps: 125  initiates a System Reset.
  • The Stop KeyPoOps: 125  puts the CPU in a stopped state; channel programs continue running and interruption conditions remain pending.
  • The Rate SwitchPoOps: 125  determines the mode in which the processor fetches instructions. Two modes are defined by the architecture:
    • PROCESS
    • INSTRUCTION STEP
  • The Start KeyPoOps: 125  initiates instruction fetching in accordance with the setting of the Rate Switch.
  • The Storage-Select SwitchPoOps: 126  determines the type of resource accessed by the Store Key and Display Key. Three selections are defined by the architecture:
    • Main storage
    • General registers
    • Floating-point registers
  • The Address SwitchesPoOps: 126  specify the address or register number for the Store Key, Display Key and, on some models, the Set IC Key..
  • The Data SwitchesPoOps: 126  specify the data for the Store Key and, on some models, the Set IC Key.
  • The Store KeyPoOps: 126  stores the value in the Data Switches as specified by the Storage-Select Switch and the Address Switches.
  • The Display KeyPoOps: 126  displays the value specified by the Storage-Select Switch and the Address Switches.
  • The Set IC=PoOps: 126  sets the instruction address portion of the PSW from the Data Switches or the Address Switches, depending on the model.
  • The Address-Compare SwitchesPoOps: 126  select the mode of comparison and what is compared. Stop on instruction address compare is present on all models, but stop on data address compare is only present on some models.
  • The Alternate-Prefix LightPoOps: 126  is on when the prefix trigger is in the alternate state.

Optional features edit

Byte-aligned operands edit

On some models, e,g., the S/360-85,[9] the alignment requirements for some problem-state instructions were relaxed. There is no mechanism to turn off this feature, and programs depending on receiving a program check type 6 (alignment) on those instructions must be modified.

Decimal arithmetic edit

The decimal arithmetic feature provides instructions that operate on packed decimal data. A packed decimal number has 1-31 decimal digits followed by a 4-bit sign. All of the decimal arithmetic instructions except PACK and UNPACK generate a Data exception if a digit is not in the range 0-9 or a sign is not in the range A-F.

Direct Control edit

The Direct ControlPoOps: 17.1  feature provides six external signal lines and an 8-bit data path to/from storage.[20]

Floating-point arithmetic edit

The floating-point arithmetic feature provides 4 64-bit floating point registers and instructions to operate on 32 and 64 bit hexadecimal floating point numbers. The 360/85 and 360/195 also support 128 bit extended precision floating point numbers.

Interval timer edit

If the interval timer feature[2]: 17.1  is installed, the processor decrements the word at location 80 ('50'X) at regular intervals; the architecture does not specify the interval but does require that value subtracted make it appear as though 1 were subtracted from bit 23 300 times per second. The smaller models decremented at the same frequency (50 Hz or 60 Hz) as the AC power supply, but larger models had a high resolution timer feature. The processor causes an External interruption when the timer goes to zero.

Multi-system operation edit

Multi-system operationPoOps: 17.1–18  is a set of features to support multi-processor systems, e.g., Direct Control, direct address relocation (prefixing).

Storage protection edit

If the storage protection feature[2]: 17-17.1  is installed, then there is a 4-bit storage key associated with every 2,048-byte block of storage and that key is checked when storing into any address in that block by either a CPU or an I/O channel. A CPU or channel key of 0 disables the check; a nonzero CPU or channel key allows data to be stored only in a block with the matching key.

Storage Protection was used to prevent a defective application from writing over storage belonging to the operating system or another application. This permitted testing to be performed along with production. Because the key was only four bits in length, the maximum number of different applications that could be run simultaneously was 15.

An additional option available on some models was fetch protection. It allowed the operating system to specify that blocks were protected from fetching as well as from storing.

Deviations and extensions edit

The System/360 Model 20 is radically different and should not be considered to be a S/360.

The System/360 Model 44 is missing certain instructions, but a feature allowed the missing instructions to be simulated in hidden memory thus allowing the use of standard S/360 operating systems and applications.

Some models have features that extended the architecture, e.g., emulation instructions, paging, and some models make minor deviations from the architecture. Examples include:

  • The multisystem feature on the S/360-65 which modifies the behavior of the direct control feature and of the Set System Mask (SSM) instruction.[13]
  • The System/360 Model 67-2 had similar, but incompatible, changes.[11]

Some deviations served as prototypes for features of the S/370 architecture.

See also edit

Notes edit

  1. ^ Twice the size of the later System/370
  2. ^ A specification of general register 0 yield a base address of zero rather than the register content.
  3. ^ a b c On a processor that complies with the S/360 architecture, the highest channel number is 6. Eleven bits are sufficient to identify the cuu, and seven bits are sufficient to provide masking of I/O interruptions. However, on a 360/67-2 with two 2846 channel controllers, channels are numbered 0-6 and 8-14;[11]: 15  similarly, the 360/195 had an extended channel feature[10]: 21  but numbered the channels 0 through 13.[10]: 25  I/O interruptions for Channel Controller 1 on the 360/67-2 were masked using control registers, and the 360/195 used bit 7 (Channel 6) of the System Mask as a summary mask bit for channels 6 and up. Interruptions from More than Seven ChannelsPoOps: 121.4  describes the summary masking for additional channels, but other text in Principles of Operation still refers to a limit of 7 channels. Standard software supported channels 0-F.
  4. ^ Because the design of the S/360 occurred simultaneously with the development of ASCII, IBM's ASCII support did not match the standard that was ultimately adopted.
  5. ^ The S/360 literature does not use the terms fault or trap
  6. ^ a b On the 360/91,[12]: 15  360/95 and 360/195[10]: 14  a Program interruption may occur for multiple imprecise exceptions. The ILC in the Program Old PSW is 0, bits 26-31 are 0 and bits 16-27 are a mask indicating which exceptions occurred; there is no provision for reporting multiple occurrences of the same exception. Reporting of multiple imprecise exceptions is not part of the S/360 architecture.
  7. ^ a b c d There are 17 possible exceptions on the 360/67,[11]: 17  but page exception and segment exception are not part of the S/360 architecture; similarly, interruption code 18 ('0012'X) on a 360/65 multiprocessor is not part of the S/360 architecture.
  8. ^ The Specification bit is not used for imprecise interruptions on the 360/195
  9. ^ a b Not Used on 360/91
  10. ^ A PSW key of 0 matches any storage key.
  11. ^ Even though a timer expiration is an internal event, it causes an External interruption and for this reason, this interruption is usually referred to as a timer/external interruption.
  12. ^ Because of the limits on the channel number, S/360 and early S/370 software only used 12 bits to store device addresses.
  13. ^ But continuing with unrelated work.
  14. ^ The OS uses the attention index in a Unit Control Block (UCB) as an index into the attention table.
  15. ^ Also known as Suppress Incorrect Length Indication (SILI)
  16. ^ Or an equivalent automated facility.
  17. ^ Read with all modifier bits zero
  18. ^ There is an inconsistency, in that Interruptions from More than Seven ChannelsPoOps: 121.4  allows for more channels.

References edit

S360
IBM System/360 Principles of Operation. September 1968. A22-6821-7. {{cite book}}: |work= ignored (help)
  1. ^ IBM (1964), IBM System/360 Principles of Operation (PDF), First Edition, A22-6821-0
  2. ^ a b c d e f g h i j k IBM (September 1968), IBM System/360 Principles of Operation (PDF), Eighth Edition, A22-6821-7 Revised by IBM (May 12, 1970), ibid., GN22-0354 and IBM (June 8, 1970), ibid., GN22-0361
  3. ^ a b IBM, IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information (PDF), Fifth Edition, A22-6843-3
  4. ^ S360, p. 15, Program Status Word.
  5. ^ S360, pp. 15 –&#32, 16, Interruption.
  6. ^ S360, p. 77, Interruptions.
  7. ^ IBM Corporation (1974). IBM System/360 System Summary (PDF). p. 3-3. Retrieved July 16, 2017.
  8. ^ Reference Manual UNIVAC III Data Processing System (PDF), Sperry Rand Corporation, 1962, UT-2488
  9. ^ a b c IBM (June 1968), IBM System/360 Model 85 Functional Characteristics (PDF), SECOND EDITION, A22-6916-1
  10. ^ a b c d e IBM (August 1970), IBM System/360 Model 195 Functional Characteristics (PDF), Second Edition, GA22-6943-1
  11. ^ a b c d e f IBM (February 1972), IBM System/360 Model 67 Functional Characteristics (PDF), Third Edition, GA27-2719-2
  12. ^ a b IBM (1968-03-18), IBM System/360 Model 91 Functional Characteristics (PDF), Third Edition, A22-6907-2
  13. ^ a b c d e IBM (September 1968), "Appendix A. Multiprocessing System", IBM System/360 Model 65 Functional Characteristics (PDF), Fourth Edition, pp. 30–34, A22-6884-3
  14. ^ I/O Channel Interface (PDF) (Report). National Technical Information Service. July 29, 1983. FIPS PUB 60-2. Retrieved May 18, 2023.
  15. ^ S360, pp. 93–98, Control of Input/Output Devices.
  16. ^ S360, pp. 94–95, Start I/O.
  17. ^ S360, pp. 95–96, Test I/O.
  18. ^ S360, pp. 96–98, Halt I/O.
  19. ^ S360, p. 98, Test Channel.
  20. ^ IBM, IBM System/360 Direct Control and External Interrupt Features Original Equipment Manufacturers' Information (PDF), Third Edition, A22-6845-2

Further reading edit

  • Prasad, N.S. (1989). IBM Mainframes. McGraw-Hill. ISBN 0070506868. — Chapter 3 (pp. 41–110) describes the System/360 architecture.
  • Greiner, Dan (August 10, 2011). "IBM z/Architecture CPU Features - A Historical Perspective" (PDF). Evolution of The IBM Mainframe Architecture. SHARE 117 in Orlando. SHARE. Session 9220. Retrieved February 7, 2023.

External links edit

  • Introduction to IBM System/360 Architecture (Student Text)

system, architecture, model, independent, architecture, entire, line, mainframe, computers, including, limited, instruction, architecture, elements, architecture, documented, system, principles, operation, system, interface, channel, control, unit, original, e. The IBM System 360 architecture is the model independent architecture for the entire S 360 line of mainframe computers including but not limited to the instruction set architecture The elements of the architecture are documented in the IBM System 360 Principles of Operation 1 2 and the IBM System 360 I O Interface Channel to Control Unit Original Equipment Manufacturers Information manuals 3 System 360DesignerIBMBits32 bitIntroducedApril 7 1964 59 years ago 1964 04 07 DesignCISCTypeRegister RegisterRegister MemoryMemory MemoryEncodingVariable 2 4 or 6 bytes long BranchingCondition code indexing countingEndiannessBigPage sizeN A except for 360 67OpenYesRegistersGeneral purpose16 32 bitFloating point4 64 bitMain article IBM System 360 Contents 1 Features 2 Memory 3 Addressing 4 Data formats 5 Instruction formats 6 Program Status Word PSW 7 Interruption system 7 1 Input Output interruption 7 2 Program interruption 7 3 Supervisor Call interruption 7 4 External interruption 7 5 Machine Check interruption 8 Input Output 8 1 Channel status 8 2 Unit status 8 3 Channel Address Word 8 4 Channel Command Word 8 4 1 CCW Command codes 8 4 2 CCW flags 8 5 Channel Status Word 8 6 I O instructions 8 6 1 Start I O SIO 8 6 2 Test I O TIO 8 6 3 Halt I O HIO 8 6 4 Test Channel TCH 9 Operator controls 10 Optional features 10 1 Byte aligned operands 10 2 Decimal arithmetic 10 3 Direct Control 10 4 Floating point arithmetic 10 5 Interval timer 10 6 Multi system operation 10 7 Storage protection 11 Deviations and extensions 12 See also 13 Notes 14 References 15 Further reading 16 External linksFeatures editIBM S 360 registers General Registers 0 15 Two s complement value0 31Floating Point Registers 0 6 S Biased exponent Mantissa0 1 7 8 31Mantissa continued 32 63S 360 PSW 4 Chan Mask IO EX Key A M W P Interruption Code0 1 2 4 5 6 7 8 11 12 13 14 15 16 31ILC CC ProgramMask Instruction Address32 33 34 35 36 39 40 63S 360 PSW abbreviations Bits Field Meaning0 5 Channel Masks for channels 0 56 IO I O Mask for channels gt 57 EX External Mask8 11 Key PSW key12 A ASCII mode for decimal arithmetic13 M Machine check mask14 W Wait state15 P Problem state16 31 IC Interruption Code 5 32 33 ILC Instruction Length Code 6 34 35 CC Condition Code36 39 PM Program Mask Bit Meaning36 Fixed point overflow37 Decimal overflow38 Exponent underflow39 Significance40 63 IA Instruction AddressIBM documentation numbers the bits from high order to low order the most significant leftmost bit is designated as bit number 0 The System 360 architecture provides the following features 16 32 bit general purpose registers 4 64 bit floating point registers 64 bit processor status register PSW which includes a 24 bit instruction address 24 bit 16 MB byte addressable memory space Big endian byte word order A standard instruction set including fixed point binary arithmetic and logical instructions present on all System 360 models except the Model 20 see below A commercial instruction set adding decimal arithmetic instructions is optional on some models as is a scientific instruction set which adds floating point instructions The universal instruction set includes all of the above plus the storage protection instructions and is standard for some models The Model 44 provides a few unique instructions for data acquisition and real time processing and is missing the storage to storage instructions However IBM offered a Commercial Instruction Set feature that ran in bump storage and simulated the missing instructions The Model 20 offers a stripped down version of the standard instruction set limited to eight general registers with halfword 16 bit instructions only plus the commercial instruction set and unique instructions for input output The Model 67 includes some instructions to handle 32 bit addresses and dynamic address translation with additional privileged instructions to provide virtual memory 7 Memory editMemory storage in System 360 is addressed in terms of 8 bit bytes Various instructions operate on larger units called halfword 2 bytes fullword 4 bytes doubleword 8 bytes quad word 16 bytes and 2048 byte storage block specifying the leftmost lowest address of the unit Within a halfword fullword doubleword or quadword low numbered bytes are more significant than high numbered bytes this is sometimes referred to as big endian Many uses for these units require aligning them on the corresponding boundaries Within this article the unqualified term word refers to a fullword The original architecture of System 360 provided for up to 224 16 777 216 bytes of memory The later Model 67 extended the architecture to allow up to 232 4 294 967 296 NB 1 bytes of virtual memory Addressing editSystem 360 uses truncated addressing similar to that of the UNIVAC III 8 That means that instructions do not contain complete addresses but rather specify a base register and a positive offset from the addresses in the base registers In the case of System 360 the base address is contained in one of 15 NB 2 general registers In some instructions for example shifts the same computations are performed for 32 bit quantities that are not addresses Data formats editThe S 360 architecture defines formats for characters integers decimal integers and hexadecimal floating point numbers Character and integer instructions are mandatory but decimal and floating point instructions are part of the Decimal arithmetic and Floating point arithmetic features Characters are stored as 8 bit bytes Integers are stored as two s complement binary halfword or fullword values Packed decimal numbers are stored as 1 to 16 8 bit bytes containing an odd number of decimal digits followed by a 4 bit sign Sign values of hexadecimal A C E and F are positive and sign values of hexadecimal B and D are negative Digit values of hexadecimal A F and sign values of 0 9 are invalid but the PACK and UNPK instructions do not test for validity Zoned decimal numbers are stored as 1 to 16 8 bit bytes each containing a zone in bits 0 3 and a digit in bits 4 7 The zone of the rightmost byte is interpreted as a sign Floating point numbers are only stored as fullword or doubleword values on older models On the 360 85 9 and 360 195 10 there are also extended precision floating point numbers stored as quadwords For all three formats bit 0 is a sign and bits 0 7 are a characteristic exponent biased by 64 Bits 8 31 8 63 are a hexadecimal fraction For extended precision the low order doubleword has its own sign and characteristic which are ignored on input and generated on output Instruction formats editInstructions in the S 360 are two four or six bytes in length with the opcode in byte 0 Instructions have one of the following formats RR two bytes Generally byte 1 specifies two 4 bit register numbers but in some cases e g SVC byte 1 is a single 8 bit immediate field RS four bytes Byte 1 specifies two register numbers bytes 2 3 specify a base and displacement RX four bytes Bits 0 3 of byte 1 specify either a register number or a modifier bits 4 7 of byte 1 specify the number of the general register to be used as an index bytes 2 3 specify a base and displacement SI four bytes Byte 1 specifies an immediate field bytes 2 3 specify a base and displacement SS six bytes Byte 1 specifies two 4 bit length fields or one 8 bit length field bytes 2 3 and 4 5 each specify a base and displacement The encoding of the length fields is length 1 Instructions must be on a two byte boundary in memory hence the low order bit of the instruction address is always 0 Program Status Word PSW editMain article Program Status Word The Program Status Word PSW 2 71 72 contains a variety of controls for the currently operating program The 64 bit PSW describes among other things the address of the current instruction being executed condition code and interrupt masks PSW format Bits Contents Explanation0 7 System Mask bits 0 5 enable channels 0 5 bit 6 enable all remaining channels NB 3 bit 7 enable External interruptions timer interrupt key and external signal PoOps 71 8 11 Protection key CPU protection key to compare against storage protection keys12 ASCII mode enable ASCII mode for packed decimal instructions never used by IBM software NB 4 13 Machine checks enable Machine check interruptions14 Wait State processor is halted an interruption if enabled will cause the processor to resume executing instructions15 Problem state enable to prevent the use of instructions reserved for supervisor state16 31 Interruption Code code to indicate the type of interruption inserted when the PSW is stored during IPLoad this is the address of the device from which the program was loadedPoOps 77 32 33 Instruction Length Code length in halfwords or 0 if unavailable34 35 Condition Code see individual instructions for encoding36 39 Program Mask bit 36 enable fixed point overflow bit 37 decimal overflow bit 38 exponent underflow bit 39 significancePoOps 71 40 63 Instruction Address address of next instruction except for a program interruptions with ILC 0Load Program Status Word LPSW is a privileged instruction that loads the Program Status Word PSW including the program mode protection key and the address of the next instruction to be executed LPSW is most often used to return from an interruption by loading the old PSW which is associated with the interruption class Other privileged instructions e g SSM STNSM STOSM SPKA etcetera are available for manipulating subsets of the PSW without causing an interruption or loading a PSW and one non privileged instruction SPM is available for manipulating the program mask Interruption system editThe architecture 2 77 83 defines 5 classes of interruption An interruption is a mechanism for automatically changing the program state it is used for both synchronous NB 5 and asynchronous events Interruption class Old PSWhex dec New PSWhex dec PriorityInput OutputPoOps 78 79 38 56 78 120 4ProgramPoOps 79 80 1 28 40 68 104 2Supervisor CallPoOps 80 1 81 20 32 60 96 2ExternalPoOps 81 82 18 24 58 88 3Machine CheckPoOps 82 83 30 48 70 112 1There are two storage fields assigned to each class of interruption on the S 360 an old PSW double word and a new PSW double word The processor stores the PSW with an interruption code inserted into the old PSW location and then loads the PSW from the new PSW location This generally replaces the instruction address thereby effecting a branch and optionally sets and or resets other fields within the PSW thereby effecting a mode change The S 360 architecture defines a priority to each interruption class but it is only relevant when two interruptions occur simultaneously an interruption routine can be interrupted by any other enabled interruption including another occurrence of the initial interruption For this reason it is normal practice to specify all of the mask bits with the exception of machine check mask bit as 0 for the first level interruption handlers Second level interruption handlers are generally designed for stacked interruptions multiple occurrences of interruptions of the same interruption class Input Output interruption edit An I O interruptionPoOps 78 79 occurs at the completion of a channel program after fetching a CCW with the PCI bit set and also for asynchronous events detected by the device control unit or channel e g completion of a mechanical movement The system stores the device address into the interruption code and stores channel status into the CSW at location 64 40 X Program interruption edit A Program interruption 2 16 79 80 1 occurs when an instruction encounters one NB 6 of 15 NB 7 exceptions however if the Program Mask bit corresponding to an exception is 0 then there is no interruption for that exception On 360 65 13 12 360 67 11 46 and 360 85 9 12 the Protection Exception and Addressing Exception interruptions can be imprecise in which case they store an Instruction Length Code of 0 The Interruption code may be any of Interruption codes for Program interruptionsold PSW bits 26 31 hexbits 26 31 Dec Exception0 0 Imprecise interruption NB 6 on 360 91 12 15 360 95 or 360 195 10 14 Old PSW bits for multiple imprecise interruption codes bit Exception16 Protection17 Addressing18 Specification NB 8 19 Data20 Fixed Point Overflow21 Fixed Point Divide22 Exponent Overflow23 Exponent Underflow24 Significance25 Floating Point Divide26 Decimal Overflow NB 9 27 Decimal Divide NB 9 1 1 OperationPoOps 79 2 2 Privileged operationPoOps 79 3 3 ExecutePoOps 79 4 4 ProtectionPoOps 79 5 5 AddressingPoOps 79 80 6 6 SpecificationPoOps 80 7 7 DataPoOps 80 8 8 Fixed point overflowPoOps 80 9 9 Fixed point dividePoOps 80 A 10 Decimal overflowPoOps 80 B 11 Decimal dividePoOps 80 C 12 Exponent overflowPoOps 80 D 13 Exponent underflowPoOps 80 E 14 SignificancePoOps 80 F 15 Floating point dividePoOps 80 1 10 16 Segment Translation 11 17 NB 7 11 17 Page Translation 11 17 NB 7 12 18 SSM Exception 13 NB 7 An operation exceptionPoOps 79 is recognized when a program attempts to execute an instruction with an opcode that the computer does not implement In particular an operation exception is recognized when a program is written for an optional feature e g floating point that is not installed A privileged operation exceptionPoOps 79 is recognized when a program attempts to execute a privileged instruction when the problem state bit in the PSW is 1 An execute exceptionPoOps 79 is recognized when the operand of an EXECUTE instruction EX is another EXECUTE instruction A protection exceptionPoOps 79 is recognized when a program attempts to store into a location whose storage protect key does not match NB 10 the PSW key or to fetch from a fetch protected location whose storage protect key does not match the PSW key An addressing exceptionPoOps 79 80 is recognized when a program attempts to access a storage location that is not currently available This normally occurs with an address beyond the capacity of the machine but it may also occur on machines that allow blocks of storage to be taken offline A specification exceptionPoOps 80 is recognized when an instruction has a length or register field with values not permitted by the operation or when it has an operand address that does not satisfy the alignment requirements of the opcode e g a LH instruction with an odd operand address on a machine without the byte alignment feature A data exceptionPoOps 80 is recognized when a decimal instruction specifies invalid operands e g invalid data invalid overlap A fixed point overflow exceptionPoOps 80 is recognized when significant bits are lost in a fixed point arithmetic or shift instruction other than divide A fixed point divide exceptionPoOps 80 is recognized when significant bits are lost in a fixed point divide or Convert to Binary instruction A decimal overflow exceptionPoOps 80 is recognized when significant digits are lost in a decimal arithmetic instruction other than divide A decimal divide exceptionPoOps 80 is recognized when significant bits are lost in a decimal divide instruction The destination is not altered An exponent overflow exceptionPoOps 80 is recognized when the characteristic in a floating point arithmetic operation exceeds 127 and the fraction is not zero An exponent underflow exceptionPoOps 80 is recognized when the characteristic in a floating point arithmetic operation is negative and the fraction is not zero A significance exceptionPoOps 80 is recognized when the fraction in a floating point add or subtract operation is zero A floating point divide exceptionPoOps 80 1 is recognized when the fraction in the divisor of a floating point divide operation is zero Supervisor Call interruption edit A Supervisor Call interruptionPoOps 80 1 81 occurs as the result of a Supervisor Call instruction the system stores bits 8 15 of the SVC instruction as the Interruption Code External interruption edit An ExternalPoOps 81 NB 11 interruption occurs as the result of certain asynchronous events Bits 16 24 of the External Old PSW are set to 0 and one or more of bits 24 31 is set to 1 Interruption codes for External interruptions PSW bit Type of external interruption24 Timer25 Interrupt key26 External signal 2Malfunction alert on 360 65 13 in Multisystem mode27 External signal 3System Call on 360 65 13 in Multisystem mode28 External signal 429 External signal 530 External signal 631 External signal 7Machine Check interruption edit A Machine Check interruptionPoOps 82 83 occurs to report unusual conditions associated with the channel or CPU that cannot be reported by another class of interruption The most important class of conditions causing a Machine Check is a hardware error such as a parity error found in registers or storage but some models may use it to report less serious conditions Both the interruption code and the data stored in the scanout area at 80 x 128 decimal are model dependent Input Output editFurther information on physical interface Bus and Tag This article describes I O from the CPU perspective It does not discuss the channel cable or connectors which have a separate article there is a summary elsewhere and details can be found in the IBM literature 3 and in FIPS PUB 60 2 14 I O is carried out by a conceptually separate processor called a channel Channels have their own instruction set and access memory independently of the program running on the CPU On the smaller models through 360 50 a single microcode engine runs both the CPU program and the channel program On the larger models the channels are in separate cabinets and have their own interfaces to memory A channel may contain multiple subchannels each containing the status of an individual channel program A subchannel associated with multiple devices that cannot concurrently have channel programs is referred to as shared a subchannel representing a single device is referred to as unshared There are three types of channels on the S 360 A byte multiplexer channel is capable of executing multiple CCWs 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 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 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 was an optional feature only on the models 85 and 195 The block multiplexor channel was also available on the later 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 steal cycles from the processor Peripheral devices are addressed with 16 bit NB 12 addresses 2 89 referred to as cua or cuu this article will use the term cuu The high 8 bits identify a channel numbered from 0 to 6 NB 3 while the low 8 bits identify a device on that channel A device may have multiple cuu addresses 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 was processed If not then the selection was 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 initializing the CAW with the storage key and the address of the first CCW issuing a Start I O SIO instruction that specifies the cuu for the operation waiting NB 13 for an I O interruption handling any unusual conditions indicated in the Channel Status Word CSW A channel program consists of a sequence of Channel Control Words CCWs chained together see below Normally the channel fetches CCWs from consecutive doublewords but a control unit can direct the channel to skip a CCW and a Transfer In Channel TIC CCW can direct the channel to start fetching CCWs from a new location There are several defined ways for a channel command to complete Some of these allow the channel to continue fetching CCWs while others terminate the channel program In general if the CCW does not have the chain command bit set and is not a TIC then the channel will terminate the I O operation and cause an I O interruption when the command completes Certain status bits from the control unit suppress chaining The most common ways for a command to complete are for the count to be exhausted when chain data is not set and for the control unit to signal that no more data transfers should be made If Suppress Length Indication SLI is not set and one of those occurs without the other chaining is not allowed The most common situations that suppress chaining are unit exception and unit check However the combination of unit check and status modifier does not suppress chaining rather it causes the channel to do a command retry reprocessing the same CCW In addition to the interruption signal sent to the CPU when an I O operation is complete a channel can also send a Program Controlled interruption PCI to the CPU while the channel program is running without terminating the operation and a delayed device end interruption after the I O completion interruption Channel status edit These conditions are detected by the channel and indicated in the CSW PoOps 116 118 Program controlled interruptionPoOps 116 117 indicates that the channel has fetched a CCW with the PCI bit set The channel continues processing this interruption simply informs the CPU of the channel s progress An example of the use of Program controlled interruption is in the Program Fetch function of Contents Supervision whereby the control program is notified that a Control Relocation Record has been read To ensure that this record has been completely read into main storage a disabled bit spin one of the few which remains in the control program is initiated Satisfaction of the spin indicates that the Control Relocation Record is completely in main storage and the immediately preceding Text Record may be relocated After relocation a NOP CCW is changed to a TIC and the channel program continues In this way an entire load module may be read and relocated while utilizing only one EXCP and possibly only one revolution of the disk drive PCI also has applications in teleprocessing access method buffer management Incorrect lengthPoOps 117 indicates that the data transfer for a command completed before the Count was exhausted This indication is suppressed if the Suppress Length Indication bit in the CCW is set Program checkPoOps 117 indicates one of the following errors Nonzero bits where zeros are required An invalid data or CCW address The CAW or a TIC refers to a TIC Protection checkPoOps 117 118 indicates that the protection key in the CAW is non zero and does not match the storage protection key Channel data checkPoOps 118 indicates a parity error during a data transfer Channel control checkPoOps 118 indicates a channel malfunction other than Channel data check or Interface control check Interface control checkPoOps 118 indicates an invalid signal in the channel to control unit interface Chaining checkPoOps 118 indicates lost data during data chaining Unit status edit These conditions are presented to the channel by the control unit or device PoOps 113 116 In some cases they are handled by the channel and in other cases they are indicated in the CSW There is no distinction between conditions detected by the control unit and conditions detected by the device AttentionPoOps 113 indicates an unusual condition not associated with an ongoing channel program It often indicates some sort of operator action like requesting input in which case the CPU would respond by issuing a read type command most often a sense command 04h from which additional information could be deduced Attention is a special condition and requires specific operating system support and for which the operating system has a special attention table NB 14 with a necessarily limited number of entries Status modifierPoOps 113 114 SM indicates one of three unusual conditions A Test I O instruction was issued to a device that does not support it A Busy status refers to the control unit rather than to the device A device has detected a condition that requires skipping a CCW A CCW with a command for which Status Modifier is possible will normally specify command chaining in which case the SM is processed by the channel and does not cause an interruption A typical channel program where SM occurs is dd Search Id Equal TIC 8 Read Data where the TIC causes the channel to refetch the search until the device indicates a successful search by raising SM dd Control unit endPoOps 114 indicates that a previous control unit busy status has been cleared BusyPoOps 114 115 indicates that a device SM 0 or a control unit SM 1 is busy Channel endPoOps 115 indicates that the device has completed the data transfer for a channel command There may also be an Incorrect length indication if the Count field of the CCW is exhausted depending on the value of the Suppress Length Indication bit Device endPoOps 115 indicates that the device has completed an operation and is ready to accept another DE may be signalled concurrently with CE or may be delayed Unit checkPoOps 115 116 indicates that the device or control unit has detected an unusual conditions and that details may be obtained by issuing a Sense command Unit exceptionPoOps 116 indicates that the device has detected an unusual condition e g end of file Channel Address Word edit The fullword Channel Address Word 2 99 CAW contains a 4 bit storage protection key and a 24 bit address of the channel program to be started Channel Command Word edit A Channel Command Word is a doubleword containing the following an 8 bit channel Command CodePoOps 100 a 24 bit addressPoOps 100 101 a 5 bit flag fieldPoOps 99 100 101 105 an unsigned halfword Count fieldPoOps 100 101 CCW Command codes edit The low order 2 or 4 bits determine the six types of operations that the channel performs 2 100 105 The encoding is CCW Command codes bits Command 0000 Invalid in a CCW simulated by the processor s Test I O TIO instructionMMMM 0100 SensePoOps 106 107 1000 Transfer in Channel TIC PoOps 107 108 MMMM 1100 Read BackwardPoOps 105 106 MMMM MM01 WritePoOps 105 MMMM MM10 ReadPoOps 105 MMMM MM11 ControlPoOps 106 107 The meaning of the high order six or four bits the modifier bits M in the table above depends upon the type of I O device attached see e g DASD CKD CCWs All eight bits are sent to and interpreted in the associated control unit or its functional equivalent Control is used to cause a state change in a device or control unit often associated with mechanical motion e g rewind seek Sense is used to read data describing the status of the device The most important case is that when a command terminates with unit check the specific cause can only be determined by doing a Sense and examining the data returned A Sense command with the modifier bits all zero is always valid A noteworthy deviation from the architecture is that DASD use Sense command codes for Reserve and Release instead of using Control CCW flags edit The flags in a CCW affect how it executes and terminates CCW flags bit flag effect32 CD Chain Data Continue operation using the storage area defined by the next CCW PoOps 101 103 33 CC Chain Command Continue with the Command in the next CCW PoOps 101 103 34 SLI NB 15 Suppress Length Indication Continue channel program after count mis match PoOps 99 100 35 SKIP Skip Do not read from or write into storage PoOps 103 104 36 PCI Program Controlled Interruption Request interruption when fetching CCW PoOps 104 105 Channel Status Word edit The Channel Status Word CSW 2 113 121 provides data associated with an I O interruption CSW format bits field0 3 KeyPoOps 119 4 7 00008 31 Command AddressPoOps 119 32 47 StatusPoOps 113 118 32 39 Unit Status ConditionsPoOps 113 116 Detected by the device or control unit32 AttentionPoOps 113 33 Status modifierPoOps 113 114 34 Control unit endPoOps 114 35 BusyPoOps 114 115 36 Channel endPoOps 115 37 Device endPoOps 115 38 Unit checkPoOps 115 116 39 Unit exceptionPoOps 116 40 47 Channel Status ConditionsPoOps 116 118 Detected by the channel 40 Program controlled interruptionPoOps 116 117 41 Incorrect lengthPoOps 117 42 Program checkPoOps 117 43 Protection checkPoOps 117 118 44 Channel data checkPoOps 118 45 Channel control checkPoOps 118 46 Interface control checkPoOps 118 47 Chaining checkPoOps 118 48 63 CountPoOps 120 The Protection Key field contains the protect key from the CAW at the time that the I O operation was initiated for I O complete or PCI interruptions PoOps 119 The Command Address field contains the address 8 of the last CCW fetched for an I O complete or PCI interruption However there are 9 exceptionsPoOps 119 The Status field contains one byte of Channel status bits indicating conditions detected by the channelPoOps 116 118 and one byte of Unit status bits indicating conditions detected by the I O unitPoOps 113 116 There is no distinction between conditions detected by the control unit and conditions detected by the device The Residual Count is a half word that gives the number of bytes in the area described by the CCW that have not been transferred to or from the channelPoOps 120 The difference between the count in the CCW and the residual count gives the number of bytes transferred I O instructions edit The S 360 has four 15 I O instructions Start I O SIO Test I O TIO Halt I O HIO and Test Channel TCH All four are privileged and thus will cause a privileged operation program interruption if used in problem state The B1 base and D1 displacement fields are used to calculate the cuu channel and device number bits 8 15 of the instructions are unused and should be zero for compatibility with the S 370 Start I O SIO edit SIO 16 attempts to start the channel program pointed to by the CAW using the storage protection key in the CAW Test I O TIO edit TIO 17 tests the status of a channel and device It may also store a CSW in which case it completes with condition code 1 Halt I O HIO edit HIO 18 attempt to terminate an active channel program It may also store a CSW in which case it completes with condition code 1 Test Channel TCH edit TCH 19 tests the status of a channel It does not affect the status of an active channel program and does not store a CSW Operator controls edit nbsp operator controlsThe architecture of System 360 specified the existence of several common functions but did not specify their means of implementation This allowed IBM to use different physical means e g dial keyboard pushbutton roller image or text on a CRT for selecting the functions and values on different processors Any reference to key or switch should be read as applying to e g a light pen selection an equivalent keyboard sequence System Reset sends a reset signal on every I O channel and clears the processor state all pending interruptions are cancelled System Reset is not guaranteed to correct parity errors in general registers floating point registers or storage System Reset does not reset the state of shared I O devices Initial Program Load IPL PoOps 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 2 123 This process is sometimes known as Booting As part of the IPL facility the operator has a means of specifying a 12 bit NB 3 device address typically with three dials as shown in the operator controls drawing When the operator NB 16 selects the Load function the system performs a System Reset sends a Read IPL NB 17 channel command to the selected device in order to read 24 bytes into locations 0 23 and causes the channel to begin fetching CCWs at location 8 the effect is as if the channel had fetched a CCW with a length of 24 and 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 dd 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 dd Emergency pull switchPoOps 124 Emergency power off EPO sends an EPO signal to every I O channel then turns off power to the processor complex Because EPO bypasses the normal sequencing of power down damage can result and the EPO control has a mechanical latch to ensure that a customer engineer inspects the equipment before attempting to power it back on Power onPoOps 124 powers up all components of the processor complex and performs a system reset Power offPoOps 124 initiates an orderly power off sequence Although the contents of storage are preserved the associated storage keys may be lost The Interrupt keyPoOps 124 causes an external interruption with bit 25 set in the External Old PSW The Wait lightPoOps 124 indicates that the PSW has bit 14 wait set the processor is temporarily halted but resumes operation when an interruption condition occurs The Manual lightPoOps 124 indicates that the CPU is in a stopped state The System lightPoOps 124 indicates that a meter is running either due to CPU activity or due to I O channel activity The Test lightPoOps 124 indicates that certain operator controls are active when certain facilities e g INSTRUCTION STEP have been used by a Diagnose instruction or when abnormal thermal conditions exist The details are model dependent The Load lightPoOps 124 is turned on by IPL and external start It is turned off by loading the PSW from location 0 at the completion of the load process The Load unitPoOps 124 125 controls provide the rightmost 11 NB 18 bits of the device from which to perform an IPL The Load KeyPoOps 125 starts the IPL sequence The Prefix Select Key SwitchPoOps 125 selects whether IPL will used the primary prefix or the alternative prefix The System Reset KeyPoOps 125 initiates a System Reset The Stop KeyPoOps 125 puts the CPU in a stopped state channel programs continue running and interruption conditions remain pending The Rate SwitchPoOps 125 determines the mode in which the processor fetches instructions Two modes are defined by the architecture PROCESS INSTRUCTION STEP The Start KeyPoOps 125 initiates instruction fetching in accordance with the setting of the Rate Switch The Storage Select SwitchPoOps 126 determines the type of resource accessed by the Store Key and Display Key Three selections are defined by the architecture Main storage General registers Floating point registers The Address SwitchesPoOps 126 specify the address or register number for the Store Key Display Key and on some models the Set IC Key The Data SwitchesPoOps 126 specify the data for the Store Key and on some models the Set IC Key The Store KeyPoOps 126 stores the value in the Data Switches as specified by the Storage Select Switch and the Address Switches The Display KeyPoOps 126 displays the value specified by the Storage Select Switch and the Address Switches The Set IC PoOps 126 sets the instruction address portion of the PSW from the Data Switches or the Address Switches depending on the model The Address Compare SwitchesPoOps 126 select the mode of comparison and what is compared Stop on instruction address compare is present on all models but stop on data address compare is only present on some models The Alternate Prefix LightPoOps 126 is on when the prefix trigger is in the alternate state Optional features editByte aligned operands edit On some models e g the S 360 85 9 the alignment requirements for some problem state instructions were relaxed There is no mechanism to turn off this feature and programs depending on receiving a program check type 6 alignment on those instructions must be modified Decimal arithmetic edit The decimal arithmetic feature provides instructions that operate on packed decimal data A packed decimal number has 1 31 decimal digits followed by a 4 bit sign All of the decimal arithmetic instructions except PACK and UNPACK generate a Data exception if a digit is not in the range 0 9 or a sign is not in the range A F Direct Control edit The Direct ControlPoOps 17 1 feature provides six external signal lines and an 8 bit data path to from storage 20 Floating point arithmetic edit The floating point arithmetic feature provides 4 64 bit floating point registers and instructions to operate on 32 and 64 bit hexadecimal floating point numbers The 360 85 and 360 195 also support 128 bit extended precision floating point numbers Interval timer edit If the interval timer feature 2 17 1 is installed the processor decrements the word at location 80 50 X at regular intervals the architecture does not specify the interval but does require that value subtracted make it appear as though 1 were subtracted from bit 23 300 times per second The smaller models decremented at the same frequency 50 Hz or 60 Hz as the AC power supply but larger models had a high resolution timer feature The processor causes an External interruption when the timer goes to zero Multi system operation edit Multi system operationPoOps 17 1 18 is a set of features to support multi processor systems e g Direct Control direct address relocation prefixing Storage protection edit If the storage protection feature 2 17 17 1 is installed then there is a 4 bit storage key associated with every 2 048 byte block of storage and that key is checked when storing into any address in that block by either a CPU or an I O channel A CPU or channel key of 0 disables the check a nonzero CPU or channel key allows data to be stored only in a block with the matching key Storage Protection was used to prevent a defective application from writing over storage belonging to the operating system or another application This permitted testing to be performed along with production Because the key was only four bits in length the maximum number of different applications that could be run simultaneously was 15 An additional option available on some models was fetch protection It allowed the operating system to specify that blocks were protected from fetching as well as from storing Deviations and extensions editThe System 360 Model 20 is radically different and should not be considered to be a S 360 The System 360 Model 44 is missing certain instructions but a feature allowed the missing instructions to be simulated in hidden memory thus allowing the use of standard S 360 operating systems and applications Some models have features that extended the architecture e g emulation instructions paging and some models make minor deviations from the architecture Examples include The multisystem feature on the S 360 65 which modifies the behavior of the direct control feature and of the Set System Mask SSM instruction 13 The System 360 Model 67 2 had similar but incompatible changes 11 Some deviations served as prototypes for features of the S 370 architecture See also editMemory protection keyNotes edit Twice the size of the later System 370 A specification of general register 0 yield a base address of zero rather than the register content a b c On a processor that complies with the S 360 architecture the highest channel number is 6 Eleven bits are sufficient to identify the cuu and seven bits are sufficient to provide masking of I O interruptions However on a 360 67 2 with two 2846 channel controllers channels are numbered 0 6 and 8 14 11 15 similarly the 360 195 had an extended channel feature 10 21 but numbered the channels 0 through 13 10 25 I O interruptions for Channel Controller 1 on the 360 67 2 were masked using control registers and the 360 195 used bit 7 Channel 6 of the System Mask as a summary mask bit for channels 6 and up Interruptions from More than Seven ChannelsPoOps 121 4 describes the summary masking for additional channels but other text in Principles of Operation still refers to a limit of 7 channels Standard software supported channels 0 F Because the design of the S 360 occurred simultaneously with the development of ASCII IBM s ASCII support did not match the standard that was ultimately adopted The S 360 literature does not use the terms fault or trap a b On the 360 91 12 15 360 95 and 360 195 10 14 a Program interruption may occur for multiple imprecise exceptions The ILC in the Program Old PSW is 0 bits 26 31 are 0 and bits 16 27 are a mask indicating which exceptions occurred there is no provision for reporting multiple occurrences of the same exception Reporting of multiple imprecise exceptions is not part of the S 360 architecture a b c d There are 17 possible exceptions on the 360 67 11 17 but page exception and segment exception are not part of the S 360 architecture similarly interruption code 18 0012 X on a 360 65 multiprocessor is not part of the S 360 architecture The Specification bit is not used for imprecise interruptions on the 360 195 a b Not Used on 360 91 A PSW key of 0 matches any storage key Even though a timer expiration is an internal event it causes an External interruption and for this reason this interruption is usually referred to as a timer external interruption Because of the limits on the channel number S 360 and early S 370 software only used 12 bits to store device addresses But continuing with unrelated work The OS uses the attention index in a Unit Control Block UCB as an index into the attention table Also known as Suppress Incorrect Length Indication SILI Or an equivalent automated facility Read with all modifier bits zero There is an inconsistency in that Interruptions from More than Seven ChannelsPoOps 121 4 allows for more channels References editS360 IBM System 360 Principles of Operation September 1968 A22 6821 7 a href Template Cite book html title Template Cite book cite book a work ignored help IBM 1964 IBM System 360 Principles of Operation PDF First Edition A22 6821 0 a b c d e f g h i j k IBM September 1968 IBM System 360 Principles of Operation PDF Eighth Edition A22 6821 7 Revised by IBM May 12 1970 ibid GN22 0354 and IBM June 8 1970 ibid GN22 0361 a b IBM IBM System 360 I O Interface Channel to Control Unit Original Equipment Manufacturers Information PDF Fifth Edition A22 6843 3 S360 p 15 Program Status Word S360 pp 15 amp 32 16 Interruption S360 p 77 Interruptions IBM Corporation 1974 IBM System 360 System Summary PDF p 3 3 Retrieved July 16 2017 Reference Manual UNIVAC III Data Processing System PDF Sperry Rand Corporation 1962 UT 2488 a b c IBM June 1968 IBM System 360 Model 85 Functional Characteristics PDF SECOND EDITION A22 6916 1 a b c d e IBM August 1970 IBM System 360 Model 195 Functional Characteristics PDF Second Edition GA22 6943 1 a b c d e f IBM February 1972 IBM System 360 Model 67 Functional Characteristics PDF Third Edition GA27 2719 2 a b IBM 1968 03 18 IBM System 360 Model 91 Functional Characteristics PDF Third Edition A22 6907 2 a b c d e IBM September 1968 Appendix A Multiprocessing System IBM System 360 Model 65 Functional Characteristics PDF Fourth Edition pp 30 34 A22 6884 3 I O Channel Interface PDF Report National Technical Information Service July 29 1983 FIPS PUB 60 2 Retrieved May 18 2023 S360 pp 93 98 Control of Input Output Devices S360 pp 94 95 Start I O S360 pp 95 96 Test I O S360 pp 96 98 Halt I O S360 p 98 Test Channel IBM IBM System 360 Direct Control and External Interrupt Features Original Equipment Manufacturers Information PDF Third Edition A22 6845 2Further reading editPrasad N S 1989 IBM Mainframes McGraw Hill ISBN 0070506868 Chapter 3 pp 41 110 describes the System 360 architecture Greiner Dan August 10 2011 IBM z Architecture CPU Features A Historical Perspective PDF Evolution of The IBM Mainframe Architecture SHARE 117 in Orlando SHARE Session 9220 Retrieved February 7 2023 External links editIntroduction to IBM System 360 Architecture Student Text Retrieved from https en wikipedia org w index php title IBM System 360 architecture amp oldid 1155875277, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.