Attached Support Processor (ASP) was an implementation of loosely coupled multiprocessing for IBM's OS/360 operating system. IBM later changed the name to Asymmetrical multiProcessor but retained the acronym ASP .
37-473: ASP evolved from the design of the 7094 / 7044 direct coupled system, using data channel to data channel communication. By attaching an IBM 7044 as a peripheral processor throughput of the 7094 was more than doubled. ASP was introduced in March 1967, and initially allowed connection of two System/360 computers via a channel-to-channel adapter (CTCA). As initially defined an ASP system typically consisted of
74-759: A 12-bit offset. The compatible PDP-10 line of successors to the PDP-6, and the IBM System/370 and later compatible successors to the System/360, including the current z/Architecture , work in the same fashion. The 1969 Data General Nova and successor Eclipse , and 1970 DEC PDP-11 , minicomputers also provided general-purpose registers (called "accumulators" in the Nova and Eclipse), rather than separate accumulators and index registers, as did their Eclipse MV and VAX 32-bit superminicomputer successors. In
111-600: A X-registers on others, were first used in the British Manchester Mark 1 computer, in 1949. In general, index registers became a standard part of computers during the technology's second generation , roughly 1954–1966. Most machines in the IBM 700/7000 mainframe series had them, starting with the IBM 704 in 1954, though they were optional on some smaller machines such as the IBM 650 and IBM 1401 . Early "small machines" with index registers include
148-438: A basic memory cycle of 2.18 Ξs, using the IBM 7302 Core Storage core memory technology from the IBM 7030 (Stretch) project. With a processing speed of around 100 Kflop/s , the 7090 is six times faster than the 709, and could be rented for half the price. An upgraded version, the 7094, was up to twice as fast. Both the 7090 and the 7094 were withdrawn from sale on July 14, 1969, but systems remained in service for more than
185-408: A computer's CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays . It can also be used for holding loop iterations and counters. In some architectures it is used for read/writing blocks of memory. Depending on the architecture it may be a dedicated index register or
222-495: A decade after. In 1961, the IBM 7094 famously employed a speech synthesis program to sing " Daisy Bell ", becoming something of a cultural icon . Although the 709 was a superior machine to its predecessor, the 704, it was being built and sold at the time that transistor circuitry was supplanting vacuum tube circuits. Hence, IBM redeployed its 709 engineering group to the design of a transistorized successor. That project became called
259-407: A general-purpose register. Some instruction sets allow more than one index register to be used; in that case additional instruction fields may specify which index registers to use. Generally, the contents of an index register is added to (in some cases subtracted from) an immediate address (that can be part of the instruction itself or held in another register) to form the "effective" address of
296-495: A large System/360 computer, a Model 50 , 65 , or 75 running OS/360, called the main processor , and a smaller System/360, Model 40 or larger, called the support processor , running the ASP supervisor as a single task under OS/360 PCP (Primary Control Program). The support processor performed functions such as printing, card reading and punching, freeing the main processor to run the application workload. It queued jobs, roughly 30 in
333-532: A less expensive IBM 7044 to handle input/output (I/O) with the 7094 performing mostly computation. Aerospace developed the Direct Couple operating system, an extension to IBSYS, which was shared with other IBM customers. IBM later introduced the DCS as a product. The 7090 used more than 50,000 germanium alloy-junction transistors and (faster) germanium diffused junction drift transistors . The 7090 used
370-466: A load or store instruction is the sum of any of the 16 registers and either a displacement or another of the registers with the exception of R15 (possibly shifted left for scaling). In the 64-bit version of the ARM architecture, there are 31 64-bit general-purpose registers plus a stack pointer and a zero register; the memory address of a load or store instruction is the sum of any of the 31 registers and either
407-658: A wide variety of software provided for them by IBM. In addition, there was a very active user community within the user organization, SHARE . IBSYS is a "heavy duty" production operating system with numerous subsystem and language support options, among them FORTRAN , COBOL , SORT/MERGE, the MAP assembler, and others. FMS, the Fortran Monitor System , was a more lightweight but still very effective system optimized for batch FORTRAN and assembler programming. The assembler provided, FAP, ( FORTRAN Assembly Program ),
SECTION 10
#1732780303700444-500: Is not zero, it selects just one of seven index registers, however, the program can return to multiple tag mode with the instruction Enter Multiple Tag Mode , restoring 7090 compatibility. In April 1964, the first 7094 II was installed, which had almost twice as much general speed as the 7094 due to a faster clock cycle , dual memory banks and improved overlap of instruction execution, an early instance of pipelined design. In 1963, IBM introduced two new, lower cost machines called
481-493: The AN/USQ-17 , around 1960, and the 9 series of real-time computers from Scientific Data Systems , from the early 1960s. The 1962 UNIVAC 1107 has 15 X-registers, four of which were also A-registers. The 1964 GE-635 has 8 dedicated X-registers; however, it also allows indexing by the instruction counter or by either half of the A or Q register. The Digital Equipment Corporation (DEC) PDP-6 , introduced in 1964, and
518-441: The IBM 1403 line printer. Later IBM introduced the 7094/7044 Direct Coupled System ; the 7044 handled spooling between its fast 1400-series peripherals and 1301 or 1302 disk files, and used data channel to data channel communication as the 7094's interface to spooled data, with the 7094 primarily performing computations. There is also a 7090/7040 DCS. The 7090 and 7094 machines were quite successful for their time, and had
555-555: The IBM 7040 and 7044. They have a 36-bit architecture based on the 7090, but with some instructions omitted or optional, and simplified input/output that allows the use of more modern, higher performance peripherals from the IBM 1400 series . The 7094/7044 Direct Coupled System (DCS) was initially developed by an IBM customer, the Aerospace Corporation , seeking greater cost efficiency and scheduling flexibility than IBM's IBSYS tape operating system provided. DCS used
592-547: The IBM System/360 , announced in 1964, do not include dedicated index registers; instead, they have general-purpose registers (called "accumulators" in the PDP-6) that can contain either numerical values or addresses. The memory address of an operand is, in the PDP-6, the sum of the contents of a general-purpose register and an 18-bit offset and, on the System/360, the sum of the contents of two general-purpose registers and
629-475: The Standard Modular System (SMS) cards using current-mode logic some using diffused junction drift transistors. The basic instruction formats were the same as the IBM 709 : The documentation of opcodes used signed octal. The flag field indicated whether to use indirect addressing or not. The decrement field often contained an immediate operand to modify the results of the operation, or
666-632: The 1972 Intel 8008 allowed indirect addressing via register pairs, the first microprocessor with a true index register appears to have been the 1974 Motorola 6800 . In 1975, the 8-bit MOS Technology 6502 processor had two index registers 'X' and 'Y'. In 1978, the Intel 8086 , the first x86 processor, had eight 16-bit registers, referred to as "general-purpose", all of which can be used as integer data registers in most operations; four of them, 'SI' (source index), 'DI' (destination index), 'BX' (base), and 'BP' (base pointer), can also be used when computing
703-576: The 64-bit version of the x86 instruction set; in x86-64, the general-purpose registers were extended to 64 bits, and eight additional general-purpose registers were added; the memory address of an operand is the sum of two of those 16 registers and a displacement. The reduced instruction set computing (RISC) instruction sets introduced in the 1980s and 1990s all provide general-purpose registers that can contain either numerical values or address values. In most of those instruction sets, there are 32 general-purpose registers (in some of those instruction sets,
740-417: The 709 and 7090, and requires a Leave Multiple Tag Mode instruction in order to enter seven index register mode and use all seven index registers. In multiple tag mode, when more than one bit is set in the tag field, the contents of the two or three selected index registers are logically ORed , not added , together, before the decrement takes place. In seven index register mode, if the three-bit tag field
777-501: The 709-T (for transistorized ), which because of the sound when spoken, quickly shifted to the nomenclature 7090 (i.e., seven - oh - ninety). Similarly, the related machines such as the 7070 and other 7000 series equipment were sometimes called by names of digit - digit - decade (e.g., seven - oh - seventy). An upgraded version, the IBM 7094 , was first installed in September 1962. It has seven index registers , instead of three on
SECTION 20
#1732780303700814-570: The PDP-11 and VAX, any register could be used when calculating the memory address of an operand; in the Nova, Eclipse, and Eclipse MV, only registers 2 and 3 could be used. The 1971 CDC STAR-100 has a register file of 256 64-bit registers, 9 of which are reserved. Unlike most computers, the STAR-100 instructions only have register fields and operand fields, so the registers serve more as pointer registers than as traditional index registers. While
851-623: The actual data (operand). Special instructions are typically provided to test the index register and, if the test fails, increments the index register by an immediate constant and branches, typically to the start of the loop. While normally processors that allow an instruction to specify multiple index registers add the contents together, IBM had a line of computers in which the contents were or'd together. Index registers have proved useful for doing vector / array operations and in commercial data processing for navigating from field to field within records. In both uses index registers substantially reduced
888-506: The amount of memory used and increased execution speed. In early computers without any form of indirect addressing , array operations had to be performed by modifying the instruction address, which required several additional program steps and used up more computer memory, a scarce resource in computer installations of the early era (as well as in early microcomputers two decades later). Index registers, commonly known as B-lines in early British computers, as B-registers on some machines and
925-417: The basic configuration, and released them to the main processor in priority order, and also did pre-execution setup of removable input/output devices such as disks and tapes on the main processor. The main processor was configured identically to a "stand-alone processor operating under OS/360, except that the channel-to-channel adapter replaces the normal system input and output devices." The support processor
962-434: The earlier machines. The 7151-2 Console Control Unit for the 7094 has a distinctive box on top that displays lights for the four new index registers. The 7094 introduced double-precision floating point and additional instructions , but largely maintained backward compatibility with the 7090. Although the 7094 has four more index registers than the 709 and 7090, at power-on time it is in multiple tag mode , compatible with
999-485: The eight 16-bit registers to 32 bits, with "E" added to the beginning of the register name; in IA-32, the memory address of an operand is the sum of one of those eight registers, one of seven of those registers (the stack pointer is not allowed as the second register here) multiplied by 1, 2, 4, or 8, and a displacement. The Advanced Micro Devices Opteron , the first model of which was released in 2003, introduced x86-64 ,
1036-470: The memory address of an operand, which is the sum of one of those registers and a displacement, or the sum of one of 'BX' or 'BP", one of 'SI' or 'DI', and a displacement. The 1979 Intel 8088 , and the 16-bit Intel 80186 , Intel 80188 , and Intel 80286 successors work the same. In 1985, the i386 , a 32-bit successor to those processors, introducing the IA-32 32-bit version of the x86 architecture, extended
1073-451: The same processor serves as both a local and a main. These capabilities are standard in the final ASP version, version 3, as is support for OS/VS2 (SVS) . With the introduction of MVS for System/370 IBM rewrote and renamed ASP as Job Entry Subsystem 3 (JES3) and it is still in use as of 2015. IBM 7094 The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that
1110-401: The time. Printing and punched card I/O, however, employed the same modified unit record equipment introduced with the 704 and was slow. It became common to use a less expensive IBM 1401 computer to read cards onto magnetic tape for transfer to the 7090/94. Output would be written onto tape and transferred to the 1401 for printing or card punching using its much faster peripherals, notably
1147-462: The value of one of those registers is hardwired to zero) could be used to calculate the operand address; they did not have dedicated index registers. In the 32-bit version of the ARM architecture , first developed in 1985, there are 16 registers designated as "general-purpose registers", but only 13 of them can be used for all purposes, with register R15 containing the program counter . The memory address of
Attached Support Processor - Misplaced Pages Continue
1184-433: Was a minimum of a Model 40 G (G indicates memory size of 128KB) with two selector channels, a 1052 console typewriter , a 2540 card read/punch, a 1403 printer , and three 2311 disk drives . It was recommended that the support processor have access to one 2400-series tape drive for support. The OS version on the main processor was modified to be able to overlay itself with the 7090/94 emulator program when an emulator job
1221-751: Was an indirect effective address ; i.e., fetch the word at that location and treat the T and Y fields as described above. Data formats are Octal notation was used in documentation and programming; console displays lights and switches were grouped into three-bit fields for easy conversion to and from octal. The 7090 series features a data channel architecture for input and output, a forerunner of modern direct memory access I/O. Up to eight data channels can be attached, with up to ten IBM 729 tape drives attached to each channel. The data channels have their own very limited set of operations called commands. These are used with tape (and later, disk) storage as well as card units and printers, and offered high performance for
1258-545: Was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 series scientific computers. The first 7090 installation was in December 1959. In 1960, a typical system sold for $ 2.9 million (equivalent to $ 23 million in 2023) or could be rented for $ 63,500 a month (equivalent to $ 501,000 in 2023). The 7090 uses a 36-bit word length , with an address space of 32,768 words (15-bit addresses). It operates with
1295-472: Was somewhat less complete than MAP, but provided excellent capabilities for the era. FMS also incorporated a considerably enhanced derivative of the FORTRAN compiler originally written for the 704 by Backus and his team. Despite its commercial success, the IBM 7090 faced competition in the market. Notable contemporary competitors included, in alphabetical order: Index register An index register in
1332-461: Was to be run, and the emulator program would similarly overlay itself with OS/360 when done, to process emulated 709x jobs intermixed with standard 360 jobs. This later became unnecessary with the introduction of integrated emulation programs on the Model 85 and System/370 Later IBM allowed a single support processor to control multiple main processors and added support for Local ASP (LASP), in which
1369-411: Was used to further define the instruction type. The tag field might describe an index register to be operated on, or be used as described below. The Y field might contain an address, an immediate operand or an opcode modifier. For instructions where the tag field indicated indexing, the operation was If there was no F field or F is not all one bits, then the above was the effective address . Otherwise it
#699300