Back
Next
IBM 360
Source : https://en.wikipedia.org/wiki/IBM_System/360_architecture
Multi-user/multi-tasking.
Indirect memory addressing to simplify code/data placement in memory.
Direct addressing accomplished via displacement.
L 48(0,0) # register 0 treated as zero when used as base or index.
Only 1st 4KiB of memory directly addressable and is OS protected.
32-bit word, big endian (later 64 bit, IBM 390 - z-OS)
24 bit addressing (3 byte) = 16 MB IBM 360
31 bit addressing (4 byte) = 2 GiB IBM 370-390
64 bit addressing - Z/OS series.
Supports 64-bit addressing for both code and data.
Runs in a virtual environment - may actually run on systems with more
memory.
16 General purpose registers
Highly orthogonal - most instructions don't care which registers used.
Only 1-15 truly general.
* R0 has special rule when used as an address register
- always treated as zero.
By tradition, certain registers used for certain tasks.
R15 - holds address of sub-routine
R14 - holds return address
balr R14,R15
R13 - pointer to save area
R1 - used to pass a single parameter or pointer to parm. list.
R0 - used for return code.
NO stack pointer - programmers use standard linkage to implement a
type of software based stack.
4 Floating point register pairs R0,R1 R2,R3 R4,R5 R6,R7
- 32 bit short, 64 bit, or addressed as 128 bit even/odd pairs.
64-bit Program status word - is a combination of condition code register,
instruction pointer, and program status register.
Channel masks - masks/selects requests from channel I/O, which are
run by co-processor chips that handle (hard drive) I/O and share
system resources.
External mask - masks interrupts from other external devices.
Protection key - used to protect blocks of memory in multi-tasking systems.
When active, key of memory holding instruction must match key assigned
to memory block being accessed.
BC/EC mode - indicates if program is running in 24 bit legacy mode
or newer 31 bit mode.
Machine check mask - masks or accepts hardware problem interrupts.
Wait state - pauses/flags CPU while waiting for channel devices to respond.
(Improper use of flag can lock up machine.)
Problem state - indicates supervisor (OS) or problem (user's program).
Allows or restricts execution of certain instructions.
Interrupt code - records a software interrupt ID code generated.
e.g Soc 4.
Instruction length code - length of instruction just executed.
IBM 360 supports 2, 4, 6, and 8 bit instructions.
Condition code - 4 bits wide - used to flag various numeric conditions,
zero, greater, less, overflow, etc.
Program masks - masks user handle-able interrupts. Fixed point overflow,
decimal overflow, exponent underflow, significance.
Instruction address (24 or 31 bit program counter)
Newer Z-OS doubled PSW and has a 64-bit instruction address.
Recognizes 2, 4, 6, and 8 byte instruction lengths.
Heavily depends on indirect (pointer style) addressing.
Strong support for multi-user, multi-tasking, high reliance on indirect
addressing allows tasks to be swapped in and out of different places in
memory.
370 - support of 31 bit address range, 2GB
- supports older 360 address range and code design
390 - support of 31 bit address range, 2GB
Improved I/O architecture.
- supports older 360 24-bit address range and code design
- supports additional primary memory set up as 4K pages that
can be swapped in and out - virtual memory using real memory.
- supports LPAR (logical partitions) capable of running different
OSes concurrently.
zOS - 64 bit address range.
- supports both 24-bit(360) and 31-bit(370) address and code.