[cctalk] Re: CDC and IBM Schoonschip
> On Apr 25, 2024, at 4:27 PM, Paul Koning via cctalk > wrote: > > Looking at the webpage for the CDC version, I noticed the comment about SB0 > B0 vs. NO and the "lore" about the divide unit. That issue is reported in > Thornton's book. It wouldn't surprise me if it were a real issue on the > "preproduction serial number 3" system where that code was first created. > > It clearly was fixed soon after, though. In the 6600 block diagrams manual > where the flow of the execution machinery is documented in detail, it's quite > clear that NO does not do any functional unit reservations (but SB0 does). > So at least starting with serial number 8, and possibly on earlier machines > after suitable FCOs were applied, NO is indeed the preferred pass > instruction. On the other hand, 30 bit pass has by convention been done with > SB0 B0+0, suggesting it's faster to do that than to do two NO instructions. > I guess that's right in the absence of increment unit conflicts: 3 minor > cycles for the SB0 vs. 4 for the pair of NO instructions. > > paul > Thinking about the NO instruction: it sure seems odd that it takes 3 cycles given that it doesn't reserve anything. You'd think it would just take up an issue cycle but nothing else, i.e., 1 minor cycle total. If that were the case then two NO instructions would be the correct way to do 30 bit padding. Curious. Something to look at some day. paul
[cctalk] Re: CDC and IBM Schoonschip
Looking at the webpage for the CDC version, I noticed the comment about SB0 B0 vs. NO and the "lore" about the divide unit. That issue is reported in Thornton's book. It wouldn't surprise me if it were a real issue on the "preproduction serial number 3" system where that code was first created. It clearly was fixed soon after, though. In the 6600 block diagrams manual where the flow of the execution machinery is documented in detail, it's quite clear that NO does not do any functional unit reservations (but SB0 does). So at least starting with serial number 8, and possibly on earlier machines after suitable FCOs were applied, NO is indeed the preferred pass instruction. On the other hand, 30 bit pass has by convention been done with SB0 B0+0, suggesting it's faster to do that than to do two NO instructions. I guess that's right in the absence of increment unit conflicts: 3 minor cycles for the SB0 vs. 4 for the pair of NO instructions. paul
[cctalk] Re: CDC and IBM Schoonschip
On Thu, Apr 25, 2024 at 9:54 AM Paul Koning via cctalk wrote: > > Neat. I vaguely remember that program name from long ago, though I haven't > used it. (Part of why it's familiar is that it's a nice Dutch word hard to > pronounce for most others... :-) ) Done on purpose of course :-) > I wonder how difficult it would be to port to a present-day compiler like > gfortran. I think the code is mostly interesting for historical reasons. It was originally written mostly in COMPASS assembly with the Fortran handling input/output sort of stuff and then translated (in a somewhat unusual manner) into IBM BAL by Hugo Strubbe. Later, when Tini realized that the CDC mainframes were on their way out, he ported Schoonschip to m68k assembly. In fact, he wrote his own m68k toolchain (ie assembler and linker) in order to do so! Tini Veltman is probably best known for his work on dimensional regularization and the Standard Model which led to his Nobel Prize. However, he also had a computing side to him. Of course, he had his own way of doing things .. like not trusting any high level languages. He was apparently quite proud of optimizing his code for the CDC 6600. But tying Schoonschip to the bare metal is probably one of the main reasons it hasn't survived beyond an important historical milestone. - jim -- James T. Liu, Professor of Physics 3409 Randall Laboratory, 450 Church Street, Ann Arbor, MI 48109-1040 Tel: 734 763-4314Fax: 734 763-2213Email: jim...@umich.edu
[cctalk] Re: CDC and IBM Schoonschip
> On Apr 25, 2024, at 9:43 AM, James Liu via cctalk > wrote: > > Hi, > > As some of you may recall, a few years ago I asked for assistance > reading a 9 track tape containing IBM S/360 source for Martinus > Veltman's computer algebra program, Schoonschip > (https://en.wikipedia.org/wiki/Schoonschip). With Chuck's assistance, > we recovered all the code from the tape. After working with the > principals involved, I am pleased to announce that the source code is > now publicly available at: >https://vsys.physics.lsa.umich.edu/ Neat. I vaguely remember that program name from long ago, though I haven't used it. (Part of why it's familiar is that it's a nice Dutch word hard to pronounce for most others... :-) ) I wonder how difficult it would be to port to a present-day compiler like gfortran. paul