23

Wikipedia's page on the IBM System/360 family claims that a distinction once existed between business and scientific computers. The model 44 in particular was designed for scientific work and was set apart by lack of decimal instruction and inclusion of a floating point unit. Another source (I cannot recall) stated that IBM's machines were successors of their unit record equipment and as such were largely business oriented.

I would like to know what other features of a computer architecture would have made it a scientific or business machine as well as examples of each, if it is possible to distinguish.

4
  • 1
    AFAIK the floating point unit was an "optional feature" for the entire S/360 range. The model 44 had some unique additional floating point features, e.g. selecting the precision of "long" floating point numbers via front panel controls. See en.wikipedia.org/wiki/IBM_System/360_Model_44#Architecture
    – alephzero
    Oct 5, 2020 at 12:34
  • Business microcomputers ran CP/M, then MS-DOS and early Windows. Scientific microcomputers ran Unix.
    – Brian H
    Oct 5, 2020 at 18:23
  • @BrianH: The 360 series of computers predated CP/M and Unix...
    – poncho
    Oct 5, 2020 at 19:39
  • 1
    @poncho ...and microcomputers.
    – Brian H
    Oct 6, 2020 at 13:13

3 Answers 3

40

In practice, "scientific computing" meant floating-point number-crunching like physics simulations, and "business" computing meant I/O-oriented record processing, such as doing the weekly payroll.

On machines targeted at the scientific market, binary arithmetic was more common, floating-point hardware was usually standard, error correction hardware less common (since once-off errors don't usually have the same consequences in a simulation vs. a bank account) and IO throughput, particularly from multiple sources, was not usually prioritized.

On commercial machines, there is more emphasis on decimal data, string processing, and BCD arithmetic instructions were usually provided. The early machines of this lineage were indeed in the tradition of unit record processing equipment, and they were designed around that environment. More emphasis was given to IO and in particular record-oriented processing (punched card and magnetic tape), since a wide variety of disparate datasets might be frequently used, compared to the more typical scientific "load and compute" job.

For IBM in particular the split originates at the very beginning of computing, in their first two designs, done by different branches within the company. IBM had been contracted for a high-speed computer, and ultimately designed the IBM 701 "Defense Calculator", with the US government's number-crunching needs being the primary intended market. It was a binary machine, high-speed and oriented towards high-speed magnetic tape IO. Its successor, the 704, would have built-in floating point math as well.

At the same time, the unit record equipment branch of IBM was developing the "drum machine" which would ultimately be the IBM 650. It was a much smaller, slower machine, primarily targeted as a programmable replacement for unit record equipment. It was a decimal machine and oriented exclusively towards processing punch cards.

This split would continue for well over a decade, with later families of semi-compatible machines in both lines. By the time of the IBM System 360, companies had realized most customers did at least a bit of both kinds of work on their machines, and that memory size, CPU size and IO needs could be very different for different customers. That was part of the motivation for merging IBM's product lines into System 360, and most System 360 models could have both the "commercial" (decimal) and "scientific" (floating point) instructions, at least as options, and the very high-end machines had both by default.

6
  • Thanks for the answer! Would it be right to conclude that modern architectures take more from the scientific side, as decimal arithmetic and other business oriented features seem to have disappeared?
    – Q3El58
    Oct 5, 2020 at 11:08
  • @Q3El58 binary-coded decimals (BCD) were a computational shortcut back then. Today, conversions between decimal and binary representation are a matter of some library code and even typical accounting/payroll things are computed in binary down under. Then again, all Intel x86 CPUs, even the latest ones, have some BCD-compatible instruction subset. Not that anything uses them in the last 30 years, ...
    – fraxinus
    Oct 5, 2020 at 12:39
  • 2
    @fraxinus, banking still uses a lot of BCD, because it avoids a lot of trouble if you don't convert back and forth all the time. Oct 5, 2020 at 15:20
  • 1
    @SimonRichter: I wonder how computers process BCD nowadays? I think the fastest way to add two 16-digit numbers if the upper bit of the result will never exceed nine would be to compute something like sum = 0x6666666666666666UL+x+y; sum -= 6*(((sum ^ x ^ y) & 0x1111111111111111UL) >> 4);, which would of course not benefit at all from the byte-based BCD instructions, but I wouldn't expect programmers to write their business logic like that.
    – supercat
    Oct 6, 2020 at 20:31
  • @Q3El58 - For the most part special instructions for decimal arithmetic disappeared because in business applications a vanishing small amount of instructions actually executed do business-style (exact power-of-ten) arithmetic. All the real work is in managing data, moving it about, converting from one format to another, searching for information (where you're either mostly looking simply at the binary representation or where you're looking at character sets, not numbers) etc. etc. For the little bit of decimal arithmetic that is actually done speed is not of the essence.
    – davidbak
    Oct 6, 2020 at 23:58
2

It is primarily floating point (needed for scientific calculation) versus fixed point decimal (needed for monetary calculations). Because that is in what the applications differed, and that was what was expensive to implement as part of the CPUs, given the low level of integration in the circuitry.

1

"business" or "commercial" instruction set usually includes string operations like moving strings in single instruction and BCD arithmetics operations like additions, multiplications/divisions and conversions of long multi-word BCD numbers in single instruction.

"Scientific" instruction set, as already mentioned, includes floating point arithmetics.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .