So after more discussion with Timothy, I have done some more work on the program to convert a text screen for the card.

Here are the bounds I was working in for this program:

Load/Store architecture
Each non memory access takes 5 100MHz clocks
Existence of a load block that take 20 + n clocks where n is the number of 32bit words. Existence of a store block that takes 5 + n clocks where n is the number of 32bit words.
Indirect register access
No load immediate instruction

Given those parameters, here is what I got:

136 instructions
73 registers - this includes some "constant" registers needed due to the missing load immediate and scratch space used for the character blit
----------
209 words - still under half the available space

Now for the performance:

I unrolled part of the blit loop since it is by far the most executed section. The end result is 13.1Hz screen update for 80x50 and 13.8Hz screen update for 80x25. The lack in refresh increase between 50 line and 25 line is due to the fact that 25 line text uses and 8x16 font where 80x50 uses 8x8 so the blit code does almost the same amount of work.

Without a block store instruction, and assuming that writes are buffered and only take 5 clocks, then screen updates drop to around 11.8Hz for 80x50. I haven't finished the analysis of removing the block read instruction, but I think the effect is negligible though slower.

Patrick M
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to