ICL 2900 Series

Last updated

An ICL 2966 Model 39 ICL 2966 mainframe.jpg
An ICL 2966 Model 39

The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer International Computers Limited on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.

Contents

In marketing terms, the 2900 Series was superseded by Series 39 in the mid-1980s; however, Series 39 was essentially a new set of machines implementing the 2900 Series architecture, as were subsequent ICL machines branded "Trimetra".

Origins

When ICL was formed in 1968 as a result of the merger of International Computers and Tabulators (ICT) with English Electric Leo Marconi and Elliott Automation, the company considered several options for its future product line. These included enhancements to either ICT's 1900 Series or the English Electric System 4, and a development based on J. K. Iliffe's Basic Language Machine. The option finally selected was the so-called Synthetic Option: a new design conceptualized from scratch.

As the name implies, the design was influenced by many sources, including earlier ICL machines. The design of Burroughs mainframes was influential, although ICL rejected the concept of optimising the design for one high-level language. The Multics system provided other ideas, notably in the area of protection. However, the biggest single outside influence was probably the MU5 machine developed at Manchester University.

Architectural concepts

ICL 2966 disk drives ICL 2966.ms.jpg
ICL 2966 disk drives
Operator adding unit ICL 2900 (I19750708).jpg
Operator adding unit

The virtual machine

The 2900 Series architecture uses the concept of a virtual machine as the set of resources available to a program. The concept of a virtual machine in the 2900 Series architecture differs from the term as used in other environments. Because each program runs in its own virtual machine, the concept may be likened to a process in other operating systems, while the 2900 Series process is more like a thread.

The most obvious resource in a virtual machine is the virtual store (memory). Other resources include peripherals, files, and network connections.

In a virtual machine, code can run in any of sixteen layers of protection, called access levels (or ACR levels, after the Access Control Register which controls the mechanism). The most-privileged levels of operating system code (the kernel) operate in the same virtual machine as the user application, as do intermediate levels such as the subsystems that implement filestore access and networking. System calls thus involve a change of protection level, but not an expensive call to invoke code in a different virtual machine. Every code module executes at a particular access level, and can invoke the functions offered by lower-level (more privileged) code, but does not have direct access to memory or other resources at that level. The architecture thus offers a built-in encapsulation mechanism to ensure system integrity.

Segments of memory can be shared between virtual machines. There are two kinds of shared memory: public segments used by the operating system (which are present in all virtual machines), and global segments used for application-level shared data: this latter mechanism is used only when there is an application requirement for two virtual machines to communicate. For example, global memory segments are used for database lock tables. Hardware semaphore instructions are available to synchronise access to such segments. A minor curiosity is that two virtual machines sharing a global segment use different virtual addresses for the same memory locations, which means that virtual addresses cannot safely be passed from one VM to another.

The term used in the ICL 2900 Series and ICL Series 39 machines for central processing unit (CPU) is "Order Code Processor" (OCP).

Addressing mechanisms

2900SeriesModules.jpg

The 2900 architecture supports a hardware-based call stack, providing an efficient vehicle for executing high-level language programs, especially those allowing recursive function calls. This was a forward-looking decision at the time, because it was expected that the dominant programming languages would initially be COBOL and FORTRAN. The architecture provides built-in mechanisms for making procedure calls using the stack, and special-purpose registers for addressing the top of the stack and the base of the current stack frame.

Off-stack data is typically addressed via a descriptor. This is a 64-bit structure containing a 32-bit virtual address and 32 bits of control information. The control information identifies whether the area being addressed is code or data; in the case of data, the size of the items addressed (1, 8, 32, 64, or 128 bits); a flag to indicate whether hardware array-bound-checking is required; and various other refinements.

The 32-bit virtual address comprises a 14-bit segment number and an 18-bit displacement within the segment.

The order code is not strictly part of the 2900 architecture. This fact has been exploited to emulate other machines by microcoding their instruction sets. However, in practice, all machines in the 2900 series implement a common order code or instruction set, known as the PLI (Primitive Level Interface). This is designed primarily as a target for high-level language compilers. The most powerful machines, such as the 2980 and 2988, implemented all instructions in hardware, whereas the others used microcoded firmware.

There are several registers, each designed for a special purpose. An accumulator register (ACC) is available for general-purpose use, and may be 32, 64, or 128 bits in size. The B register is used for indexing into arrays; the LNB (Local Name Base) register points to the base of the current stack frame, with the SF (Stack Front) register pointing to the movable 'top' of the stack; the DR register is used for holding descriptors for addressing into the heap, and so on. There are also two 32-bit pointers to off-stack data; XNB (eXtra Name Base) and LTB (Linkage Table Base).

Data formats recognized by the PLI instructions include 32-bit unsigned integers; 32-bit and 64-bit twos-complement integers; 32-bit, 64-bit and 128-bit floating point; and 32-bit, 64-bit, and 128-bit packed decimal. Contrary to C and UNIX convention, the boolean value true is represented as zero and false is represented as minus one. Strings are stored as arrays of 8-bit characters, conventionally encoded in EBCDIC (although ICL's EBCDIC has minor variations from IBM's version). It is possible to use ISO (essentially ASCII) instead of EBCDIC by setting a control bit in a privileged register; among other things, this affects certain decimal conversion instructions.

Because some of the PLI instructions, notably those for procedure calling, are very powerful (especially system calls), instruction rates on the 2900 Series are not always directly comparable with those on competitors' hardware. ICL marketing literature tended to use the concept of "IBM equivalent MIPS", being the MIPS rating of an IBM mainframe that achieved the same throughput in application benchmarks. The efficiencies achieved by the 2900 architecture, notably the avoidance of system call overheads, compensated for relatively slow raw hardware performance.

Implementations

ICL 2900 range (as at 1980) [1]
ProcessorModelAnnouncedDeliveredLater models
P-series
P42980Oct 1974Jun 1975
P32970Oct 1974Dec 1974
P2L2960Mar 1976Dec 1975
P2S2950Cancelled
PI2940Cancelled
P02930Cancelled
S-series
S4Cancelled
S32966Nov 1980Jun 19812955, 2958, 2977, 2988
S22956Nov 1980-
S12950Nov 1977Jun 19782946

P (parallel) series

An ICL 7561 terminal, used as an operator console ICL 7561 terminal.jpg
An ICL 7561 terminal, used as an operator console

The first machines announced in the 2900 Series were the 2980 and 2970. The 2980 allowed one or two order code processors (OCPs), each operating at up to 3 million instructions per second, with real memory configurable up to 8 megabytes, with a 500 nanosecond access time.

The 2980 was initially the most powerful of ICL's New Range mainframe computers. In addition to the OCPs, it consisted of a store multiple access controller (SMAC) and one or more store access controllers (SAC), a general peripheral controller (GPC), one or more disc file controllers (DFC) and a communications link controller (CLC), together with disc drives (a typical configuration would have eight EDS 200 drives), tape decks, an operating station (OPER), line printers, and card readers. It could run the ICL VME (VME/B, VME/K) or the Edinburgh Multiple Access System (EMAS) operating system. A typical 2980 configuration would cost about £2 million (equivalent to £13 million in 2021).

Unlike the 2980, the 2970 and the subsequent 2960 were microcoded, and thus allowed emulation of instruction sets such as that of the older 1900 Series or the System 4.

A 2900 Series machine was constructed from a number of functional modules, each contained in a separate cabinet. Peripheral devices were connected using ICL's Primitive Interface (Socket/Plug and cable set) to a Port Adapter on the SMAC. Logical addressing was employed and used a group scheme to identify system components in terms of Ports, Trunks, and Streams.

A Trunk was a generic name and a hardware address within a Port to which a peripheral controller would be assigned. A Trunk was a generic name for a controller for a number of Stream devices. A Stream was the generic name for the channel under which individual peripheral devices could be referenced.

The boot process for the 2960 Series merits special mention: the OCP contained a mini OPER terminal and a cassette deck. At boot, the OCP would perform its Initial Program Load (IPL) from the nominated IPL device. The IPL code provided the means for the OCP to discover the system's hardware configuration by enquiring down the Stream(s), Trunk(s), and Port(s) to find the default or manually elected boot device for the microcode set and/or Operating System to be booted. This process was called a GROPE or General Reconnaissance Of Peripheral Equipment. The cassette load method also allowed engineering staff to load and execute diagnostic software.

S (serial) series

The first machines were subsequently replaced by a family of machines based on the 2966 mid-range design, which was less costly to build and used serial rather than parallel interconnections. The 2966 was extended upward in performance to the 2988 and downward to the 2958, augmented by dual processor versions, to cover the entire performance range. [2]

See also

Sources

Related Research Articles

<span class="mw-page-title-main">Intel 8086</span> 16-bit microprocessor

The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus, and is notable as the processor used in the original IBM PC design.

In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer, also known as its machine code. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in general-purpose CPUs in contemporary desktops, it also functions as a fallback path for scenarios that the faster hardwired control unit is unable to manage.

<span class="mw-page-title-main">PDP-10</span> 36-bit computer by Digital (1966–1983)

Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especially as the TOPS-10 operating system became widely used.

x86 Family of instruction set architectures

x86 is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introduced in 1978 as a fully 16-bit extension of Intel's 8-bit 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address. The term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186, 80286, 80386 and 80486 processors. Colloquially, their names were "186", "286", "386" and "486".

VME is a mainframe operating system developed by the UK company International Computers Limited. Originally developed in the 1970s to drive ICL's then new 2900 Series mainframes, the operating system is now known as OpenVME incorporating a Unix subsystem, and runs on ICL Series 39 and Trimetra mainframe computers, as well as industry-standard x64 servers.

x86 memory segmentation refers to the implementation of memory segmentation in the Intel x86 computer instruction set architecture. Segmentation was introduced on the Intel 8086 in 1978 as a way to allow programs to address more than 64 KB (65,536 bytes) of memory. The Intel 80286 introduced a second version of segmentation in 1982 that added support for virtual memory and memory protection. At this point the original mode was renamed to real mode, and the new version was named protected mode. The x86-64 architecture, introduced in 2003, has largely dropped support for segmentation in 64-bit mode.

In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as segmentation, virtual memory, paging and safe multi-tasking designed to increase an operating system's control over application software.

Tandem Computers, Inc. was the dominant manufacturer of fault-tolerant computer systems for ATM networks, banks, stock exchanges, telephone switching centers, 911 systems, and other similar commercial transaction processing applications requiring maximum uptime and zero data loss. The company was founded by Jimmy Treybig in 1974 in Cupertino, California. It remained independent until 1997, when it became a server division within Compaq. It is now a server division within Hewlett Packard Enterprise, following Hewlett-Packard's acquisition of Compaq and the split of Hewlett-Packard into HP Inc. and Hewlett Packard Enterprise.

<span class="mw-page-title-main">Zilog Z8000</span> 16-bit microprocessor

The Z8000 is a 16-bit microprocessor introduced by Zilog in early 1979. The architecture was designed by Bernard Peuto while the logic and physical implementation was done by Masatoshi Shima, assisted by a small group of people. In contrast to most designs of the era, the Z8000 did not use microcode which allowed it to be implemented in only 17,500 transistors.

<span class="mw-page-title-main">Intel iAPX 432</span> Discontinued Intel microprocessor architecture

The iAPX 432 is a discontinued computer architecture introduced in 1981. It was Intel's first 32-bit processor design. The main processor of the architecture, the general data processor, is implemented as a set of two separate integrated circuits, due to technical limitations at the time. Although some early 8086, 80186 and 80286-based systems and manuals also used the iAPX prefix for marketing reasons, the iAPX 432 and the 8086 processor lines are completely separate designs with completely different instruction sets.

In computer science, computer engineering and programming language implementations, a stack machine is a computer processor or a virtual machine in which the primary interaction is moving short-lived temporary values to and from a push down stack. In the case of a hardware processor, a hardware stack is used. The use of a stack significantly reduces the required number of processor registers. Stack machines extend push-down automata with additional load/store operations or multiple stacks and hence are Turing-complete.

<span class="mw-page-title-main">International Computers Limited</span> British computer company (1968-2002)

International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Electric Computers (EEC) and Elliott Automation in 1968. The company's most successful product line was the ICL 2900 Series range of mainframe computers.

<span class="mw-page-title-main">Memory address</span> Reference to a specific memory location

In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware. Memory addresses are fixed-length sequences of digits conventionally displayed and manipulated as unsigned integers. Such numerical semantic bases itself upon features of CPU, as well upon use of the memory like an array endorsed by various programming languages.

In the 80386 microprocessor and later, virtual 8086 mode allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running a protected mode operating system. It is a hardware virtualization technique that allowed multiple 8086 processors to be emulated by the 386 chip. It emerged from the painful experiences with the 80286 protected mode, which by itself was not suitable to run concurrent real-mode applications well. John Crawford developed the Virtual Mode bit at the register set, paving the way to this environment.

<span class="mw-page-title-main">CDC Cyber</span> Range of mainframe-class supercomputers

The CDC Cyber range of mainframe-class supercomputers were the primary products of Control Data Corporation (CDC) during the 1970s and 1980s. In their day, they were the computer architecture of choice for scientific and mathematically intensive computing. They were used for modeling fluid flow, material science stress analysis, electrochemical machining analysis, probabilistic analysis, energy and academic computing, radiation shielding modeling, and other applications. The lineup also included the Cyber 18 and Cyber 1000 minicomputers. Like their predecessor, the CDC 6600, they were unusual in using the ones' complement binary representation.

Direct Machine Environment, abbreviated DME, was a mainframe environment for the ICL 2900 Series of computing systems from International Computers Limited that was developed in the 1970s. DME was more-or-less an ICL 1900 order code processor in microcode, which permitted the ICL 1900 series executive, operating systems and program libraries to operate on the ICL 2900 series.

The Orion was a series of 32-bit super-minicomputers designed and produced in the 1980s by High Level Hardware Limited (HLH), a company based in Oxford, UK. The company produced four versions of the machine:

The ICL Series 39 was a range of mainframe and minicomputer computer systems released by the UK manufacturer ICL in 1985. The original Series 39 introduced the "S3L" processors and microcodes, and a nodal architecture, which is a form of Non-Uniform Memory Access.

<span class="mw-page-title-main">MikroSim</span>

MikroSim is an educational software computer program for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the Microsoft Windows operating system. Devices like miniaturized calculators, microcontroller, microprocessors, and computer can be explained on custom-developed instruction code on a register transfer level controlled by sequences of micro instructions (microcode). Based on this it is possible to develop an instruction set to control a virtual application board at higher level of abstraction.

ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American competitors to the IBM System/360, enjoying significant success in the European and British Commonwealth markets.

References

  1. Campbell-Kelly, Martin (November 1989). "ICL Company Research and Development. Part 3: The New Range and other developments" (PDF). ICL Technical Journal. ICL. 6 (4): 791–795. Retrieved 19 December 2021.
  2. Moralee, Dennis (November–December 1981). "Robb Wilmot: The ICL Story". Electronics & Power. 27 (11). doi:10.1049/ep.1981.0360 . Retrieved 18 December 2021.
The cabinets in the foreground, labelled 44, 45, etc., are exchangeable disk drives; the plastic containers on top of the cabinets are used to hold the disks if they are removed from the drives. The larger containers holding more platters are 200Mb in capacity, the smaller would typically hold 40MB. The orange colour of the cabinets (officially "burnt tango") was the dominant colour used in ICL's corporate image at the time of the system's release.