SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Politics : Formerly About Advanced Micro Devices -- Ignore unavailable to you. Want to Upgrade?


To: Paul Engel who wrote (41730)11/18/1998 12:53:00 AM
From: Steve Porter  Read Replies (1) | Respond to of 1572669
 
Paul,

Generally, speed and code size are directly intertwined. There are a few exceptions today, but as a rule, the smaller your code is, the quicker it will execute, due to the reduced effects of memory latency, cache misses, etc. Loop unrolling can still be useful, but one must be very carefull to watch your code size and balance you data and instruction caches so that you loop doesn't cause a cache miss or the entire benefit is gone.

The 8088 was not nice to program on. MASM was crap (actually it still is for that matter). It is interesting to note however that the new Visual C++ 6.0 has a VERY capable inline ASM module that lets you embed ASm in you C/C++ code.. (you know the __ASM keyword). I have done this a couple of times to great effect (usually FPU related issues).

Another intersting side effect of teaching people to program on the old machines which didn't have OOO Execution is that it would allow CPU vendors to reduce some of their branch prediction (and similar) logic sizes. When programing on an older CPU branches are usually costly and one learns how to avoid them as often as possible.

Regards,

Steve