3Dcenter maakt het verhaal verwarrend, en suggereert naar mening uiteindelijk verkeerde zaken.
Wordt een lang verhaal, maar maximaal kan de X800
5 instructies per klok uitvoeren, en 6800
4 instructies per klok. Maar er zitten haken en ogen aan in welke situatie je dat kan doen....
Neem even Beyond3D er bij. Daar staan beide cores volledig beschreven:
http://www.beyond3d.com/reviews/ati/r420_x800/index.php?p=8
http://www.beyond3d.com/previews/nvidia/nv40/index.php?p=10
De X800 heeft 2 ALU's, waarvan 1 volledig, en een met een beperkte groep instructies. (Hoe beperkt is niet duidelijk)
Beide ALU's kunnen simultaan 1 vector van 3 componenten en 1 scalar behandelen.
Daarnaast zit er een parallalle texture address in, zodat je tot maximaal 5 instructies per tik komt.
Bij de 6800 zitten er ook 2 ALU's in. Die ALU's hebben 4 componenten, die willekeurig in tweeen opgesplits kan worden. Bij 1 vector van 3 componenten, en 1 scalar van 1 component, ziet dat er dus gelijk uit als die van ATI.
De texture adress zit geintegreerd in de eerste ALU, zodat je OF de ALU, of de texture Adress gebruikt.
Dus maximaal 4 instructies (twee ALU's) per klok.
Als ik het goed begrijp komt 3dcenter als volgt aan hun waarden: Zij vinden de gelimiteerde ALU van ATI geen echte ALU, en laten 'm daarom helemaal weg...
We don't regard Radeon's Mini-FPUs as "real" shading units, because they are not able to perform any instruction.
De parrallel texture adress hebben ze simpelweg vergeten. (Misschien niet aan gedacht dat die anders werkt als bij NVidia). Dus komen ze tot 1 ALU, met 2 instructies per klok.
Interessant is dat 3dcenter i.t.t. Beyond3D aangeeft dat de ALU's van de 6800 geen van beiden volledig zijn. Maar ze gaan ze wel beiden meetellen. Beetje raar, als je net de onvolledig ALU van de X800 heb genegeerd, hetgeen ze zelf ook opmerken:
But, inconsequently, we are counting two shader units for NV40's pipes, while both units are limited also.
Persoonlijk snap ik daar niets van...
zelf tot de conclusie komen dat je inconsequent bent, en desondanks gewoon doorgaan....
Dus komen ze tot de conclusie dat de 6800 4 instructies kan doen, (2 ALU's, met 2 instructies) mits de instructies dusdanig zijn dat beide ALU's ze in hun instructieset hebben zitten. De instructies moeten verschillend zijn.
Maar dat vergelijken ze dan met complete instructie set voor de X800. En dat is volgens hun dus 2 instructies.
Heel raar, want volgens de redenatie van verschillende instructies zodat iedere ALU zijn werk perfect kan doen, kan de X800 5 instructies uitvoeren.
Ga je alleen uit van complete instructie sets, dan kan de 6800 er 2 doen, en de X800 3. (2 uit de ALU, plus een texture fetch.)
Ik kan niet anders concluderen dat 3dcenter een rare gedachtenkronkel maakt. Je kunt met deze vergelijkingen niet anders uitkomen, dan dat de X800 meer instructies per klok aankan, dan de 6800.
In de praktijk zitten er natuurlijk nog wat extra adders onder het gras. Een van de vragen is natuurlijk hoe beperkt de instructiesets van de betreffende ALU's is bij ATI en NVidia, en hoe vaak je in de situatie komt dat een ALU de instructie niet kan uitvoeren. Dat kan bij de verschillende cores verschillend uitpakken. Sterker, dat kan bij verschillende shaders verschillend uitpakken!
Verder kan de parallelle texture adress van ATI een zeer groot verschil maken, aangezien hij nog steeds 5 instructies kan leveren, (2 volledig ALU, 2 kleine ALU, 1 texture) terwijl NVidia dan tot 3 instructies teruggaat (1 texture, 2 kleine ALU).
Als laatste kan NVidia twee vectors met 2 componeten tegelijk behandelen in hun ALU, terwijl ATI dat tweemaal door hun vector ALU moet laten doen... Vraag is dan natuurlijk weer hoe vaak dat voorkomt, en of de renderer het zaakje zodanig kan rangschikkend dat de scalar ALU ook aan het werk wordt gezet....
Ik denk niet dat je serieus tot de conclusie kunt komen dat de 6800 in de praktijk meer instructies per klok kan uitvoeren dan de X800.
En bedenk je dan nog wel even dat de X800 op een hogere klok draait...