gwyn@brl-vgr.ARPA (Doug Gwyn ) (05/04/84)
The 1620 instruction cycle time was on the order of 20us. With an order NlogN multiplication algorithm one could multiply two (N=10000)-digit numbers in one second, barely. (BCD arithmetic, remember.) The question is, how good was the 1620's algorithm?
ggs@ulysses.UUCP (Griff Smith) (05/04/84)
Well, I guess it's time for one of the dinosaurs to step in and end this discussion. The IBM 1620 did not have a particularly intelligent multiply algorithm, it fetched the two digits, combined them to create a decimal address, fetched the product digits from a table in low memory, then went through two add cycles to add in the product digits, also using a table in low memory. The times that I remember are: 20 microsecond memory cycle time, 80 microseconds for an add cycle, 160 microseconds for an instruction fetch/decode cycle. I am a bit hazy about the multiply time, but it was within a factor of two of 160 microseconds per cross product. The product of two 10000 digit numbers would require about 5 hours of processor time. For comparison, the "bignum" code in Franz lisp can do the same thing in about ten seconds on a VAX 11/780. The longest thing I ever did on a 1620 was to extract the square roots of 2 and 5 to 5000 places, which took about 5 hours for each computation. Note that this is comparable to the estimate for multiplication, since square root extraction is about the same speed as division in the limiting case and division is quite a bit slower than multiplication. -- Griff Smith AT&T Bell Laboratories, Murray Hill Phone: (201) 582-7736 Internet: ggs@ulysses.uucp UUCP: ulysses!ggs
ed@mtxinu.UUCP (05/05/84)
This all reminds me of the nicnkame of the 1620 Model I, which was CADET "can't add, doesn't even try", referring to the fact that the Mod I did addition by table lookup. The Mod II had add hardware, but still multiplied by lookup. -- Ed Gould ucbvax!mtxinu!ed
phil@unisoft.UUCP (05/07/84)
The 1401 (another 2nd generation IBM machine) was also a variable length character machine. The printer always printed from a fixed location in memory, and for a demo of the machine, I had a one card program that set the 132 character print area to a 1, printed it, added it to itself and looped. The growing printer noise as the power of two rose was always impressive. --- wordmarks forever!
greg@sdcsvax.UUCP (05/07/84)
Another dinosaur speaking..... Multiplication and division on the 1620 were complicated by the fact that it utilized a scratchpad area in low memory (memory locations 99, 98, 97, ...) but only twenty characters of it (80-99) were cleared to zero before executing the operation. If you had a multiply/divide that would use more than this scratchpad, you had to clear it yourself. Also, since memory wrapped around from the very largest location to the smallest (and vice versa) you had to be very careful where you located your operands so that they wouldn't get clobbered by the intermediate results being generated in the scratchpad. I once divided two numbers that were almost 10,000 digits -- as I recall, they were actually about 9,800 and 9,200 digits. It took a LOT longer than a few seconds. I didn't time it, but my memory was that it took at least ten minutes. It was long enough for me to phone the prof for whom I was doing the work, tell him that his job was in the final divide, and have him walk over to the computer lab before it finished! A wonderful machine -- I miss it. -- -- Greg Noel, NCR Torrey Pines Greg@sdcsvax.UUCP or Greg@nosc.ARPA
trough@ihuxa.UUCP (Chris Scussel) (05/09/84)
A recent article claimed that an IBM 1620 could multiply two 10000 digit numbers in about a second. A subsequent article claimed that all of its arithmetic was done a digit at a time. It seems to me that this would require a clock rate of at least 100MHz, which I find hard to believe. Comments??? Sorry about the choice of newsgroup, but his is where the articles appeared, and I don't think there'll be much discussion. Chris Scussel AT&T BL ihnp4!ihuxa!trough