return to main page1401 Compatibility Feature on the IBM System/360 Model 30
M. A. McCormack, T. T. Schansman and K. K. Womack
IBM Corporation,* Endicott, New York
The "second generation" of stored-program computers, of which the IBM 1400 series was a part, brought EDP into the mass market for the first time on a large scale. As this era unfolded, rapid changes in technology led to rapid obsolescence of data processing equipment. Programs written for a particular system required tedious conversion as incompatible :new machines came into use. The IBM System/360 has been designed with the conversion problem specifically in mind. One of the conversion aids available on the Model 30 is the 1401 compatibility feature. This feature, in conjunction with other aids, permits a smooth and inexpensive transition to optimum use of the new system.
Introduction In the past it has not generally been economically feasible to implement two dissimilar machine languages within a single processor. Today, the Read Only Storage Controls used in IBM System/360 make it economically feasible to implement the languages of current systems within System/360. To give as complete a picture of this new implementation technique as possible, remarks will be restricted to implementation of the 1401 compatibility feature on System/360 Model 30.
In the past, it was considered impossible to implement two completely different machine organizations in one processor, without incurring exceptional costs and intolerable inefficiency. However, in the case of the Model 30, it seemed that Read Only Storage Controls make manipulation of the Processor Data Flow flexible enough to perform 1400 operations at a reasonable rate and at a realistic cost. For these reasons, the present 1400 series compatibility feature or 1400 series emulator has been developed for the System/360 Model 30. Although generally less efficient than a program specifically written for the new system, the compatibility feature offers a generous increase in speed over the old system. It is, of course, never a solution in itself and should be used in conjunction with other aids as a part of the total conversion approach.
The chief advantages of the compatibility feature are:
- The delay in getting the new computer in operation is minimal.
- Immediate speed advantages usually can be gained without reprogramming, program translation, or making any changes to existing 1401 programs.
- The transition can take place over an indefinite time period, thus permitting gradual and thorough education and preventing the financial expenditure usually associated with "crash" conversions.
- Those applications destined to be discontinued can be gracefully and economically "phased out."
- Operating personnel can gain experience on the new system console while running familiar programs.
- The ability to perform parallel runs, often desirable during conversion, is available and convenient.
- The time between order and installation of the new system can be spent on developing new jobs instead of reprogramming old ones.
Of course, a certain amount of degradation in speed cannot be avoided. The data flow of the Model 30 is optimized toward System/360 operations, and there are certain factors that cannot be prevented from affecting speed in the 1401 compatibility implementation. Chief among these are: The resulting speed, however in almost every case, is still significantly higher than that of the 1400 system being replaced. This, coupled with the availability of high speed tape units and buffered card equipments means a definite increase in job performance for this feature as compared to the 1400 system being replaced.
- The conversion of decimal (1401) storage addresses to a binary value, which is necessary to address System/360 core storage.
- The difference in character codes of the 1401 and System/360 causing some character manipulation and translation to take place.
Implementation
A particular ROS word also contains a portion of the address of the next word to be executed. The remainder of the address is obtained from various machine conditions such as the condition of the adder carry latch. This allows branching on machine conditions. The address obtained is entered into the ROAR and a new cycle started, thereby allowing an indefinite sequence of ROS words to be executed. It is possible to microprogram all 1400 instructions except for certain I/0 instructions without any hardware changes in the Model 30. However, certain minor changes have been made in the hardware to speed up the 1400 instruction execution. Timing considerations dictate the addition of some hardware (e.g., Group Mark-Word Mark detection) in order to handle the data rates of some devices.
2. Auxiliary Storage. Auxiliary storage is part of the same storage array as main storage and has a capacity which varies from 512 to 2048 bytes, depending on the size of main storage. It is, however, not addressable by System/360 programs but is in effect part of the 360 controls. In System/360 mode, 256 bytes of auxiliary storage (these 256 bytes are referred to as local storage) are used for storing such things as General Purpose Registers, Floating Point Registers, and the Condition Register. The remainder of auxiliary storage is used for storage of control words necessary to operate the devices on the Multiplexor channel. The number of control words that can be stored depends on the size of main storage.
Before the processor can be used in 1400 mode, it is necessary to load 512 bytes of auxiliary storage with certain fixed information which is required to absorb the differences in code structure and storage addressing between the 1401 system and System/360. Also, a certain amount of variable information (e.g., tape densities, unit addresses, etc.) must be entered before the microprogram can execute 1400 instructions. A listing and description of some of the tables and information needed in auxiliary storage follows: a. Decimal to Binary conversion table. As indicated before, the 1400 addresses read from storage have to be converted to a binary equivalent. Tables are provided in auxiliary storage so that a simple table lookup may be used to convert the tens and hundreds digits of the 1401 address to binary.
b. 1400 BCD to System/360 EBCDIC translate table. Although the compatibility feature is designed so that 1400 programs can be kept in EBCDIC code, it is still necessary to convert to 1400 BCD for some 1400 operations. An example of such an operation is "Move Zone." It is not sufficient to merely move the zone portion of a character in EBCDIC. Both the source and destination character are first translated to 1400 BCD, the zone is then moved, and the resultant BCD character is translated to EBCDIC. Another table is provided in auxiliary storage so that the resultant character may be translated from 1400 BCD to System/360 EBCDIC. c. Operation code translate table. A 64-byte table is stored in auxiliary storage which is used for converting the 1400 operation code to a special form. This is done so that decode of the operation code is simplified and made faster. It provides a means of recognizing those operations (such as Set Word Mark and Store Star) which require special attention during instruction cycles. It also makes it easy to no-op any particular operation code or to make any particular operation code invalid.
d. Miscellaneous Information. Examples of other reformation that is stored in auxiliary storage:
- 1400 Condition bits (high-low-equal, overflow, etc.).
- Settings of sense switches.
- Physical assignment of 1/0 units. (1/0 devices on System/360 have particular unit addresses assigned at time of installation. The addresses of the particular devices to be used by the compatibility feature are entered in the appropriate bytes in auxiliary storage.)
- System definition bits such as storage size, advanced programming feature, expanded edit, etc.
- Programmed mode switch control bits for switching from 1401 mode to System/360 mode under program control.
- Control information for specifying different types of printer chains or bars.
Special Considerations In the design of the 1401 compatibility feature several things had to be given special consideration. The way in which some of these were handled illustrates the flexibility of the ROS control in the Model 30.
The special set IC microprogram written for the compatibility feature does the following: It should be noted that the function of Set IC has been augmented to provide two additional functions, namely, address conversion and character display.
- Converts the 1401 decimal address to its equivalent binary value including the proper offset to locate 1401 storage at the top of main storage.
- Displays the converted binary address as well as the decimal address in the console display lights.
- Displays the character at the address in the console lights.
Footnotes
1 A 1400-series program would get a storage wrap condition on a 1400 series machine when an address was incremented past available core storage or decremented below 1400 zero.
return to main page