> On Apr 25, 2024, at 4:27 PM, Paul Koning via cctalk <[email protected]>
> 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