Viewing posts from July, 2014

12: hwtest and scalar instructions, part 2

First of all, I did one minor error in the previous episode: I reset the VP1 unit on every test, causing the $c registers to be cleared every time (rememeber we have no means of setting it arbitrarily). Allowing them to keep the old value between tests reveals that all 0x60-0x7f operands that we though to be NOPs in fact clear the destination $c register (if any) scalar flags to 0.

11: hwtest and scalar instructions, part 1.

Given that we now have a simple and reliable way of executing a single instruction, it's time to start using automated testing to verify we got the semantics right.

10: Manually submitting single instructions

Back in the beginning, we did a register scan and noticed two sets of registers that, by default, have values strangely similiar to the NOP encodings for the 4 execution units:

9: The FIFO interface

In the last episode we had a brief look at the nv44 mthd microcode - the only thing it did was handling the DMA object setting methods. The nv50 version of this microcode is even simpler - only method 0 is handled.