> 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

Reply via email to